1. مقدمة
Redis هو نظام تخزين قيمة مفاتيح مفتوح المصدر (BSD) والذي يمكن استخدامه كقاعدة بيانات وذاكرة التخزين المؤقت والرسائل الوسيطة.
2. العملية على المفتاح
أولاً ، تحتاج إلى إنشاء اتصال. Jedis Jedis = New Jedis ("127.0.0.1" ، 6379) ، وبعد ذلك يمكنك تشغيل السلسلة ، تعيين ، Zset ، وتجزئة.
// اختبار على keytest key public void () {system.out.println (jedis.flushdb ()) ؛ // clear data system.out.println (jedis.echo ("hello") ؛ // print hellosystem.out.println (jedis.exists ( "القيم 1") ؛ jedis.set ("key2" ، "dase2") ؛ System.out.println (jedis.exists ("key1")) System.out.println (jedis.pttl ("key1")) ؛ // المتبقية من وقت البقاء على قيد الحياة // إزالة وقت انتهاء المفتاح jedis.persist ("key1") ؛ // احصل على نوع المفتاح ، "سلسلة" ، " +" ، ". مفتاح // تصدير قيمة قيمة سلسلة المفاتيح = jedis.get ("key1") ؛ system.out.println (value) ؛ // إعادة تسمية المفتاح jedis.renamenx ("key1" ، "keytest") ؛ system.out.println ("key1") مفاتيح * تطابق جميع المفاتيح في قاعدة البيانات. // Keys H؟ تطابق Llo Hello و Hallo و Hxllo ، إلخ. // يتم فصل الرموز الخاصة بواسطة /. تعيين <string> set = jedis.keys ("k*") ؛ // احصل على جميع أساليب مفاتيح المفاتيح ذات الصلة system.out.println (set) ؛ jedis.del ("key1") ؛ // حذف مفتاح del method system.out.println (jedis.exists ("key1") ؛}}}}3. نوع بيانات السلسلة
اضبط Mystr "Hello World!" // تعيين نوع السلسلة احصل على mystr // اقرأ نوع السلسلة لأداء العمليات العددية على السلسلة 127.0.0.1:6379> تعيين mynum "2" OK127.0.0.1: 6379> الحصول على myNum "2" 127.0.0.1:6379> mynum (integer) 3127.0.0.1:639.
رمز تشغيل Java هو:
// Test on String Operation Public Void StringTest () {jedis.set ("Hello" ، "Hello") ؛ // setsystem.out.println (jedis.get ("hello") ؛ // get // استخدم append لإضافة jedis.append ("hello" ، "world") ؛ Jedis.set ("Hello" ، "123") ؛ System.out.println (jedis.get ("Hello")) ؛ // تعيين وقت انتهاء الصلاحية jedis.setex ("Hello2" ، 2 ، "World2") ؛ system.out.println (jedis.get ("hello2")) ؛ جرب {thread.sleep (3000) ؛ {E.PrintStackTrace () ؛} system.out.println (jedis.get ("hello2")) ؛ // إضافة أزواج ذات قيمة مفتاح متعددة في وقت واحد jedis.mset ("a" ، "1" ، "b" ، "b" ، "2") ؛ حذف دفعة من jedis.del ("a" ، "b") ؛ system.out.println (jedis.exists ("a") ؛ system.out.println (jedis.exists ("b")) ؛}4. قائمة نوع البيانات
القوائم في Redis ليست صفائف في التنفيذ الأساسي ، ولكن القوائم المرتبطة.
سلسلة من العمليات: rpush ، lpush ، llen ، lrange ، lpop و rpop.
يمكننا استخدام LPUSH لإدخال عنصر جديد على الجانب الأيسر من القوائم ، واستخدام RPush لإدراج عنصر جديد على الجانب الأيمن من القوائم ، واستخدام الأمر lrange لتحديد نطاق من القوائم إلى استخراج العناصر.
// قم بإنشاء قائمة جديدة تسمى MyList ، وإدراج عنصر "1" 127.0.0.1:6379> lpush MyList "1" // إرجاع عدد العناصر في MyList الحالي (integer) 1 // element element "2" 127.0.0.0.1:6379> rpush mylist "2" (integer) 2 // element Lpush mylist "0" (integer) 3 // قائمة عناصر من الرقم 0 إلى الرقم 1 في MyList 127.0.0.1:6379> lrange MyList 0 11) "0" 2) "1"
رمز تشغيل Java هو:
public void listtest () {string key = "mylist" ؛ jedis.del (key) ؛ // حذف العنصر السابق // إضافة عنصر إلى قائمة انتظار jedis.rpush (المفتاح ، "aaaa") ؛ jedis.rpush (المفتاح ، "bbbb") ؛ "CCCC") ؛ // طول الكمية system.out.println ("lenth:" + jedis.llen (key)) ؛ // print queue ، بدءًا من الفهرس 0 ، إلى أول (جميع العناصر) system.out.println ("جميع العناصر:" + jedis.lrange (مفتاح ، 0 ، -1)) jedis.lindex (المفتاح ، 1)) ؛ // اضبط قيمة عنصر في قائمة الانتظار ، وسيتم إرجاع خطأ عندما يتجاوز الفهرس النطاق. jedis.lset (المفتاح ، 1 ، "aa22") ؛ system.out.println ("فهرس 1:" + jedis.lindex (المفتاح ، 1)) ؛ "-1") ؛ // enqueue عنصر من الجانب الأيسر من قائمة الانتظار jedis.rpush (المفتاح ، "العنصر الثاني" ، "العنصر الأول") ؛ // العنصر الأول // ، ثم أول // elementf يدخل نظام قائمة الانتظار. System.out.println (jedis.rpop (key)) ؛ // يزيل عنصرًا من الجانب الأيسر من نظام قائمة الانتظار. System.out.println ("جميع العناصر:" + jedis.lrange (المفتاح ، 0 ، -1)) ؛ // count> 0: يزيل عنصرًا بقيمة من البداية إلى النهاية ، والعدد هو عدد الإزالة. // count <0: قم بإزالة العنصر بقيمة من النهاية إلى الرأس ، والعدد هو عدد الإزالة. // count = 0: يزيل جميع العناصر ذات القيمة. jedis.lrem (المفتاح ، 1 ، "CCCC") ؛ System.out.println ("جميع العناصر:" + jedis.lrange (مفتاح ، 0 ، -1)) ؛ // أي أن العنصر الأيمن سيتم تضمينه أيضًا. إذا كانت البداية أكبر من تراكب الذيل للقائمة ، فسيتم إرجاع قائمة فارغة. // إذا كان التوقف أكبر من الذيل الفعلي للقائمة ، فستعامله Redis على أنه ترجمة للعنصر الأخير. System.out.println (jedis.lrange (Key ، 0 ، 2)) ؛ system.out.println ("جميع العناصر:" + jedis.lrange (مفتاح ، 0 ، -1)) jedis.lrange (مفتاح ، 0 ، -1)) ؛}5. تعيين النوع
مجموعة Redis هي مجموعة غير مرتبة ، والعناصر في المجموعة ليس لها أي ترتيب.
سلسلة من العمليات: Sadd ، Srem ، Sismember ، Smembers و Sunion.
العمليات المتعلقة بالتعاون غنية أيضًا ، مثل إضافة عناصر جديدة ، وحذف العناصر الحالية ، والحصول على التقاطعات ، والاتحاد ، والحصول على مجموعات الاختلاف ، وما إلى ذلك.
// أضف عنصرًا جديدًا إلى مجموعة Myset "One" 127.0.0.1:6379> myset "one" (integer) 1127.0.0.1:6379> myset "اثنين" (integer) 1 // انقر فوق جميع العناصر في المجموعة myset127.0.0.1: 6379> smember 1) في مجموعة MySet ، العائد 1 يعني وجود 127.0.0.1:6379> SISMEMBER MESEST "واحد" (عدد صحيح) 1 // المصطلح ما إذا كان العنصر 3 في مجموعة MySet ، فإن الإرجاع 0 غير موجود 127.0.0.0.1:6379> Myset "Three" "1")
رمز تشغيل جافا:
public void settest () {// قم بمسح نظام البيانات. "ddd") ؛ // احصل على عدد العناصر في نظام المجموعة. قم بتخزينها في مجموعة نتائج رئيسية jedis.sunionstore ("الوجهة" ، المفتاح ، key2) ؛ system.out.println (jedis.smembers ("الوجهة")) ؛ key2) ؛ system.out.println (jedis.smembers ("الوجهة")) ؛ تحديد أن العنصر هو عضو في نظام التجميع. jedis.smove (key ، key2 ، "aaa") ؛ system.out.println (jedis.smembers (key)) ؛ // الحصول على العناصر system.out.println (jedis.smembers (key2)) ؛ jedis.srem (key2 ، "ccc" ، "ddd") ؛ system.out.println (jedis.smembers (key2)) ؛}6. مجموعات المجموعات المصنفة
ندعو جميعا المجموعة المطلوبة في redis zsets
// أضف مجموعة myzset مرتبة وأضف عنصرًا baidu.com ، ورقم التسلسل المعطى له هو 1127.0.0.1:6379> Zadd myzset 1 baidu.com (integer) 1 // إضافة عنصر 360.com إلى myzset ، ورقم التسلسل المعطى له هو 3127.0.0.0.1:6379> zadd myz) google.com إلى myzset ، ورقم التسلسل المقدم له هو 2127.0.0.1:6379> Zadd myzset 2 google.com (integer) 1 // إضافة جميع عناصر myzset وسرد رقم التسلسل الخاص بهم في نفس الوقت ، يمكنك أن ترى أن myzset قد تم طلبها بالفعل. 127.0.0.1:6379> Zrange myzset 0 -1 مع الدرجات 1) "baidu.com" 2) "1" 3)
رمز تشغيل Java هو:
public void zsettest () {// clear data system.out.println (jedis.flushdb ()) ؛ string key = "mysortset" ؛ map <string ، double = ""> scoremembers = new hashmap <> () ؛ scoremembers.put ("aaa" ، 1001.0) ؛ 1002.0) ؛ scoremembers.put ("CCC" ، 1003.0) ؛ // إضافة بيانات jedis.zadd (المفتاح ، 1004.0 ، "ddd") تشير إلى العضو الأول في المجموعة المطلوبة ، مع 1 يشير إلى العضو الثاني من المجموعة المطلوبة ، وهلم جرا. // تراكب سلبي ، مع -1 يمثل العضو الأخير ، -2 يمثل مجموعة العضو الثاني إلى الأخير <string> coll = jedis.zrange (مفتاح ، 0 ، -1) ؛ system.out.println (coll) ؛ // إرجاع مجموعة الترتيب العكسي للأعضاء ضمن النطاق المحدد coll = jedis.zrevrange (مفتاح ، 0 ، -1) system.out.println (jedis.zscore (مفتاح ، "bbb")) ؛ // حذف element system.out.println (jedis.zrem (مفتاح ، "aaa")) 1002.0 ، 1003.0)) ؛}7. نوع التجزئة
تجزس يخزن التعيين بين السلسلة وقيمة السلسلة
// إنشاء علامة تجزئة وتعيين قيمة 127.0.0.1:6379> مستخدم HMSET: 001 اسم المستخدم Antirez Password P1pp0 Age 34ok // اذكر محتوى Hash127.0.0.1 "34" // قم بتغيير القيمة في Hash127.0.0.1: 6379> مستخدم HSET: 001 Password 12345 (integer) 0 // اذكر محتوى hash127.0.0.1: 6379> hgetall user: 0011)
رمز تشغيل جافا:
public void hashtest () {// clear data system.out.println (jedis.flushdb ()) ؛ string key = "myhash" ؛ map <string ، string = ""> hash = new hashmap <> () ؛ hash.put ("aaa" ، "11") ؛ إضافة البيانات jedis.hmset (المفتاح ، التجزئة) ؛ jedis.hset (المفتاح ، "ddd" ، "44") ؛ // احصل على جميع عناصر hash (قيم المفاتيح) system.out.println (jedis.hkeys (مفتاح)) ؛ system.out.println (jedis.hlen (key)) ؛ // احصل على جميع الحقول والقيم في التجزئة ، وخريطة الإرجاع <string ، string = ""> elements = jedis.hgetall (key) ؛ system.out.println (elements) ؛ القيمة المقابلة للحقل المحدد في نظام التجزئة. System.out.println (jedis.hgetall (key)) ؛ // هو الحقل في المفتاح زائد zuerrementsystem.out.println (jedis.hincrby (المفتاح ، "BBB" ، 100))8. المعاملات
تشير الصفقة إلى "إجراء كامل ، إما تنفيذ كل شيء أو لا شيء".
قبل الحديث عن معاملات redis ، سنقدم أولاً أربع تعليمات redis ، وهي متعددة ، Exec ، تجاهل ، ومشاهدة. تشكل هذه التعليمات الأربعة أساس معالجة معاملة Redis.
1. Multi يستخدم لتجميع المعاملة.
2. يتم استخدام Exec لتنفيذ معاملة ؛
3. يتم استخدام التخلص لإلغاء المعاملة ؛
4. يتم استخدام WATCH لمراقبة بعض المفاتيح. بمجرد تغيير هذه المفاتيح قبل تنفيذ المعاملة ، يتم إلغاء تنفيذ المعاملة.
redis> multi // علامة المعاملة البدء OKREDIS> user user_id // يتم وضع الأوامر المتعددة في قائمة الانتظار في QueuedRedis> user user_idqueuedredis> user user_idqueuededis> pingqueuededis> exec // execute 1) (integer) 12) (integer) 23) (integer) 34)
رمز تشغيل Java هو:
TransactionTest public void () {Transaction t = jedis.multi () ؛ // تجميع معاملة t.set ("Hello" ، "World") ؛ Response <string> response = t.get ("Hello") ؛ T.zadd ("foo" ، 1 ، "barowitch") ؛ t.zadd ( "barikoviev") ؛ استجابة <set <string >> sose = t.zrange ("foo" ، 0 ، -1) ؛ // إرجاع كل ما يقابله وإرجاع system.out.println (response) ؛ system.out.println (sose) ؛ t.exec () ؛ sose.get (). size () ؛ // sose.get () system.out.println (foolbar) ؛ system.out.println (sose.get ()) ؛ system.out.println ("حجم المجموعة هو:" + sossize) ؛}}تشغيل خط الأنابيب رمز Java:
Public void TransactionPipelInetest () {pipeline p = jedis.pipelined () ؛ // افتح خط أنابيب ("fool" ، "bar") ؛ p.zadd ("foo" ، 1 ، "barowitch") ؛ p.zadd ("foo" ، 0 ، "barinsky") ؛ p.zadd ( p.get ("fool") ؛ استجابة <set <string >> sose = p.zrange ("foo" ، 0 ، -1) ؛ system.out.println (pipestring) ؛ system.out.println (sose) ؛ p.sync () ؛ // submit System.out.println ("============================================== ؛ System.out.println (p.get (" fool ") ؛ system.out.println (p.zrange ( الانتكاس = sose.get () ؛ system.out.println (sossize) ؛ system.out.println (الانتكاس) ؛ system.out.println (pipestring.get ()) ؛}لخص
ما سبق هو كل المقدمة التفصيلية لـ Java Operation Redis في هذه المقالة ، آمل أن يكون ذلك مفيدًا للجميع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع.