1. Pendahuluan
Redis adalah sistem penyimpanan nilai kunci dalam-memori open source (BSD) yang dapat digunakan sebagai basis data, cache, dan middleware pesan.
2. Operasi pada kunci
Pertama, Anda perlu membuat koneksi. Jedis jedis = jedis baru ("127.0.0.1", 6379), dan kemudian Anda dapat mengoperasikan string, set, zset, dan hash.
// Uji Key Public Void KeyTest () {System.out.println (jedis.flushdb ()); // Clear Data System.out.println (jedis.echo ("hello")); // cetak hellosystem.out.println (jedis.exists ("foo");//hakim. "values1"); jedis.set ("key2", "values2"); System.out.println (jedis.exists ("key1")); // menilai apakah ada kunci dengan string randomKey = jedis.randomkey (); // Pilih keysystem random.out.println ("nama acak adalah:" + acak); jedis.expire ("key1", 60);/Survival adalah waktu: " System.out.println (jedis.pttl ("key1")); // Waktu bertahan hidup yang tersisa // Hapus waktu kedaluwarsa kunci jedis.persist ("key1"); // Dapatkan tipe kunci, "string", "List", "set" "tidak ada yang berarti bahwa kunci tidak ada System.out.println (" tipe "" "tidak ada" nonesinya. KEY // Ekspor nilai nilai string kunci = jedis.get ("key1"); system.out.println (nilai); // Ubah nama kunci jedis.renamenx ("key1", "keytest"); System.out.println ("key1"));/ Kunci * Cocokkan semua kunci dalam database. // Keys h? Llo cocok dengan halo, hallo dan hxllo, dll. // Keys h*llo cocok dengan hllo dan heeeeeello, dll. // Keys h [ae] llo cocok dengan halo dan hallo, tetapi bukan hillo. // Simbol khusus dipisahkan oleh /. Set <string> set = jedis.keys ("k*"); // Dapatkan semua tombol tombol kunci yang relevan System.out.println (set); jedis.del ("key1"); // hapus sistem dely del sistem.out.println (jedis.exists ("key1"));}3. Jenis Data String
Atur mystr "Halo dunia!" // Atur tipe string Get mySTR // Baca tipe string untuk melakukan operasi numerik pada string 127.0.0.1:6379> Set Mynum "2" Ok127.0.0.1: 6379> Dapatkan mynum "2" 127.0.0.1:6379> Incr Mynum (integer) 3127.0.0.0.63:6379> Incr Mynum (integer) 3127.0.0.0.0.0.63
Kode Operasi Java adalah:
// Uji operasi string public void stringTest () {jedis.set ("hello", "hello"); // setsystem.out.println (jedis.get ("hello")); // get // gunakan append untuk menambahkan jedis.append ("hello", "world"); // append meth Metode apend. jedis.set ("halo", "123"); System.out.println (jedis.get ("hello")); // atur waktu kedaluwarsa jedis.setex ("hello2", 2, "world2"); System.out.println (jedis.get ("hello2")); coba {thread.sleep (3000);} tangkapan (interruprException e) {e.printStackTrace();}System.out.println(jedis.get("hello2"));// Add multiple key-value pairs at once jedis.mset("a", "1", "b", "2");// Get the valueList of a and b valus = jedis.mget("a", "b");System.out.println(valus);// Penghapusan batch dari jedis.del ("a", "b"); system.out.println (jedis.exists ("a")); System.out.println (jedis.exists ("b"));}4. Daftar Tipe Data
Daftar di Redis bukan array dalam implementasi yang mendasarinya, tetapi daftar tertaut.
Serangkaian operasi: rpush, lpush, llen, lrange, lpop dan rpop.
Kita dapat menggunakan LPUSH untuk memasukkan elemen baru di sisi kiri daftar, menggunakan RPUSH untuk memasukkan elemen baru di sisi kanan daftar, dan menggunakan perintah LRange untuk menentukan rentang dari daftar untuk mengekstrak elemen.
// Buat daftar baru yang disebut mylist, dan masukkan elemen "1" 127.0.0.1:6379> lpush mylist "1" // kembalikan jumlah elemen dalam mylist saat ini (integer) 1 // masukkan elemen "2" 127.0.0.1:6379> Rpush Mylist "2" (integer 67.0.0.1.12/12.22.22.22.22.22.2. lpush mylist "0"(integer) 3// List elements from number 0 to number 1 in mylist 127.0.0.1:6379> lrange mylist 0 11) "0"2) "1"//list the first element in mylist from number 0 to the last 127.0.0.1:6379> lrange mylist 0 -11) "0"2) "1"3) "2"
Kode Operasi Java adalah:
public void listTest () {string key = "mylist"; jedis.del (key); // hapus yang sebelumnya // tambahkan elemen ke antrian jedis.rpush (key, "aaaa"); jedis.rpush (key, "bbbb"); jedis.rpush (key, "cccc (" cccc. " "cccc"); // kuantitas panjang sistem.out.println ("lenth:" + jedis.llen (key)); // cetak antrian, mulai dari indeks 0, ke sistem pertama (semua elemen) sistem.out.println ("semua elemen:" + jedis.lrange (key, 0, -1)); " jedis.lindex (kunci, 1)); // Atur nilai elemen dalam antrian, dan kesalahan akan dikembalikan ketika indeks melebihi rentang. jedis.lset(key, 1, "aa22");System.out.println("index of 1: " + jedis.lindex(key, 1));// Enqueue an element from the right side of the queue jedis.rpush(key, "-2", "-1");// Enqueue an element from the right side of the queue jedis.rpush(key, "-2", "-1"); // enqueue elemen dari sisi kiri antrian jedis.rpush (kunci, "elemen kedua", "elemen pertama"); // elemen kedua //, lalu elemen pertama // elemen dari queue system.out.println ("semua elemen:" + jedis.lrange (kunci, 0, 1)) ("semua elemen:" + jedis.lrange (key, 0, 1)); System.out.println (jedis.rpop (key)); // Dequeues elemen dari sisi kiri sistem antrian.out.println (jedis.lpop (kunci)); System.out.println ("Semua elemen:" + jedis.lrange (kunci, 0, -1)); // Count> 0: Menghapus elemen dengan nilai dari awal hingga akhir, dan hitungan adalah jumlah yang dihapus. // Hitung <0: Lepaskan elemen dengan nilai dari ujung ke kepala, dan hitung adalah jumlah yang dihapus. // Count = 0: Menghapus semua elemen dengan nilai. jedis.lrem (kunci, 1, "cccc"); System.out.println ("Semua elemen:" + jedis.lrange (Key, 0, -1)); // yaitu, elemen paling kanan juga akan dimasukkan. Jika Start lebih besar dari subskrip ekor daftar, daftar kosong akan dikembalikan. // Jika berhenti lebih besar dari ekor sebenarnya dari daftar, Redis akan memperlakukannya sebagai subskrip elemen terakhir. System.out.println (jedis.lrange (key, 0, 2)); System.out.println ("Semua elemen:" + jedis.lrange (key, 0, -1)); // Hapus elemen di luar sistem interval.out.println (jedis.ltrim (kunci, 0, 2); jedis.lrange (kunci, 0, -1));}5. Setel set
Set Redis adalah set yang tidak berurutan, dan elemen -elemen di set tidak memiliki urutan.
Serangkaian operasi: SADD, SREM, Sismember, Smembers dan Sunion.
Operasi terkait set juga kaya, seperti menambahkan elemen baru, menghapus elemen yang ada, mendapatkan persimpangan, mengambil persatuan, mendapatkan set perbedaan, dll.
// Tambahkan elemen baru ke koleksi myset "One" 127.0.0.1:6379>Sadd myset "satu" (integer) 1127.0.0.1:6379> di bawah myset "dua" (Integer) 1 // Klik semua elemen dalam koleksi myset1277.0.0.1: 6379> "1) 1" 1 "1" 1 "" 1 "" 1 "1" 1 "1" 1 "1" 1 "1" "1" "1" 1 "1" "1" "2" 1 "1" 1 "" 2 "" 2 "" 2 "" 2 "1" Dalam koleksi myset, return 1 berarti ada 127.0.0.1:6379>Sismember myset "satu" (integer) 1 // Istilah apakah elemen 3 ada dalam koleksi myset, return 0 berarti tidak ada 127.0.1:6379>Sismember myset "tiga" (integer) 0 // membuat set baru Anda. "1"(integer) 1127.0.0.1:6379> sadd yourset "2"(integer) 1127.0.0.1:6379> smembers yourset1) "1"2) "2"//Create a union of two sets127.0.0.1:6379> sunion myset yourset 1) "1"2) "one"3) "2"4) "two"
Kode Operasi Java:
public void setTest () {// Hapus data System.out.println (jedis.flushdb ()); string key = "myset1"; string key2 = "myset2"; // tambahkan elemen ke koleksi jedis.sadd (key, "aaa", "bbb", "ccc"); jedis.sad ("" "" "DDD"); // Dapatkan jumlah elemen dalam sistem pengumpulan.out.println (jedis.scard (key)); // Jumlah jumlah set // dapatkan persimpangan dua set dan simpan dalam hasil utama set jedis.sinterstore ("tujuan", kunci, key2); System.out.println (jedis "), key2); System. it in a key result set jedis.sunionstore("destination", key, key2);System.out.println(jedis.smembers("destination"));// In the key1 set, the key2 set does not have elements and stores them in a key result set jedis.sdiffstore("destination", key, key2); System.out.println (jedis.smembers ("tujuan")); // Tentukan bahwa elemen adalah anggota dari sistem pengumpulan.out.println (jedis.sismember (kunci, "aaa")); // dapatkan elemen dari kunci pengumpulan.out.println (jedis.srandmembermember) dari kunci); Jedis.smove (key, key2, "aaa"); System.out.println (jedis.smembers (key)); // Dapatkan elemen System.out.println (jedis.smembers (Key2)); // hapus dan dapatkan elemen dalam sistem pengumpulan.out.println (jedis.spop Jedis.srem (key2, "ccc", "ddd"); system.out.println (jedis.smembers (key2));}6. Tipe Set yang Diurutkan
Kita semua menyebut set yang dipesan di redis zsets
// Tambahkan set myzset yang dipesan dan tambahkan elemen baidu.com, dan nomor urutan yang diberikan kepadanya adalah 1127.0.0.1:6379> zadd myzset 1 baidu.com (integer) 1 // Tambahkan elemen 360.com ke myzset, dan nomor urutan yang diberikan kepada 3127.0.0.1:6379, dan urutannya yang diberikan kepada 3127.0.0.1:6379> google.com ke myzset, dan nomor urutan yang diberikan kepadanya adalah 2127.0.0.1:6379> Zadd Myzset 2 Google.com (Integer) 1 // Tambahkan semua elemen MyZset dan daftar nomor urutan mereka pada saat yang sama, Anda dapat melihat bahwa Myzset sudah dipesan. 127.0.0.1:6379> zrange myzset 0 -1 dengan skor 1) "baidu.com" 2) "1" 3) "Google.com" 4) "2" 5) "360.com" 6) "3" // Hanya daftar elemen myzset127.0.0.1: 6379> zrange myzset 0 -myzset127) "" "" "" "" "" 1 "" "" 1 ")"
Kode Operasi Java adalah:
public void zsetTest () {// CLEAR Data System.out.println (jedis.fielhdb ()); string key = "mysortset"; peta <string, double = ""> scoremembers = hashmap baru <> (); scoremembers.put ("aaa", 1001.0); scoremembers ("scoremembers.put (" aaa ", 1001.0); scoremembers (" scoremembers.put ("aaa", 1001.0); scoremser ("scoremembers.put (" aaa ", 1001.0); scoremembers (" scoremembers. 1002.0); scoremembers.put ("ccc", 1003.0); // Tambahkan data jedis.zadd (kunci, 1004.0, "ddd"); jedis.zadd (kunci, scoremembers); // mendapatkan jumlah anggota yang diurut Anggota set yang dipesan, dengan 1 menunjukkan anggota kedua dari set yang dipesan, dan sebagainya. // Subskrip negatif, dengan -1 mewakili anggota terakhir, -2 mewakili set anggota kedua hingga terakhir <string> coll = jedis.zrange (kunci, 0, -1); System.out.println (coll); // Mengembalikan set ordo balik dalam kisaran yang ditentukan coll = jedis.zrevrange (key, 0, -1); System.out.println (jedis.zscore (key, "bbb")); // hapus elemen system.out.println (jedis.zrem (kunci, "aaa")); System.out.println (jedis.zrange (key, 0, -1)); Jumlah anggota di dalam kisaran yang diberikan. 1002.0, 1003.0));}7. Jenis Hash
Hash menyimpan pemetaan antara string dan nilai string
//Create a hash and assign a value of 127.0.0.1:6379> HMSET user:001 username antirez password P1pp0 age 34OK//List the content of the hash127.0.0.1:6379> HGETALL user:0011) "username"2) "antirez"3) "password"4) "P1pp0"5) "age"6) "34" // Ubah nilai di hash127.0.0.1: 6379> pengguna HSET: 001 Kata Sandi 12345 (integer) 0 // Sebutkan konten hash127.0.0.1: 6379> Hgetall User: 0011) "nama pengguna" 2) "Antirez" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
Kode Operasi Java:
public void hashtest () {// CLEAR Data System.out.println (jedis.flushdb ()); string key = "myhash"; peta <string, string = ""> hash = hashmap baru <> (); hash.put ("aaa", "11"); hash. Data jedis.hmset (kunci, hash); jedis.hset (kunci, "ddd", "44"); // Dapatkan semua elemen hash (nilai kunci) system.out.println (jedis.hkeys (kunci); // dapatkan nilai yang sesuai dengan semua kunci di hash system.out.println (JEdln (JEDIS. System.out.println (jedis.hlen (key)); // Dapatkan semua bidang dan nilai dalam hash, dan return peta <string, string = ""> elemen = jedis.hgetall (key); System.out.println (elemen); // Tentukan apakah nilai kunci yang diberikan ada di sistem yang disetel. Nilai yang sesuai dengan bidang yang ditentukan dalam hash system.out.println (jedis.hmget (kunci, "aaa", "bbb")); // Dapatkan sistem nilai yang ditentukan.out.println (jedis.hget (Key, "aaa")); // hapus sistem nilai yang ditentukan. System.out.println (jedis.hgetall (key)); // adalah bidang bidang di kunci plus incrementsystem.out.println (jedis.hincrby (key, "bbb", 100)); System.out.println (jedis.hgetall (key));}8. Transaksi
Transaksi mengacu pada "tindakan lengkap, baik dieksekusi semua atau tidak melakukan apa -apa".
Sebelum berbicara tentang transaksi Redis, pertama -tama kami akan memperkenalkan empat instruksi Redis, yaitu multi, eksekutif, buang, dan menonton. Keempat instruksi ini membentuk dasar pemrosesan transaksi Redis.
1.Multi digunakan untuk mengumpulkan transaksi;
2. EXEC digunakan untuk menjalankan transaksi;
3. Buang digunakan untuk membatalkan transaksi;
4.Watch digunakan untuk memantau beberapa kunci. Setelah tombol ini diubah sebelum transaksi dieksekusi, pelaksanaan transaksi dibatalkan.
redis> multi // Tag transaksi Mulai okredis> incr user_id // beberapa perintah antrian dalam urutan antreuuedredis> incr user_idqueuedredis> incr user_idqueuedredis> pingqueuedredis> exect // execute 1) (integer) 12) (integer) 23) (integer) 34) (integer) 12) (integer) 23) (integer) 34)
Kode Operasi Java adalah:
public void transactionTest () {transaction t = jedis.multi (); // mengumpulkan transaksi t.set ("hello", "world"); respons <string> response = t.get ("hello"); t.zadd ("foo", 1, "barowitch"); t.zadd ("foo", "Barin", "Barowitch"); t.zadd ("foo", "BARINS" BARINSKY "); "Barikoviev"); respons <set <string>> sose = t.zrange ("foo", 0, -1); // mengembalikan semua yang sesuai dan pengembalian system.out.println (respons); System.out.println (SOSE); TRESPEOS (T.Exec (); // Perhatikan bahwa baris ini, eksekusi tidak dapat hilang dari string); tespones. sose.get (). size (); // sose.get () system.out.println (foolbar); System.out.println (sose.get ());}Operasi Pipa Kode Java:
public void transactionpipelinetest () {Pipeline p = jedis.pipelined (); // buka pipa p.set ("bodoh", "bar"); p.zadd ("foo", 1, "barowitch"); p.zadd ("foo", "Barinsky"); p.zadd ("fooad (" foo "," Barinsky "); p.zadd (" fooV "," FOO "," BARINSKY "); P.ZADD (" FOOUP "," FOO "," BARINSKY "); p.get ("fool"); respons <set <Tring>> sose = p.zrange ("foo", 0, -1); System.out.println (Pipestring); System.out.println (SOSE); p.sync (); // kirim System.out.println ("==========================================; System.out.println (p.get (" Fool "); System.out.println (p.zrange (" foo ", 0, -1)); setback = sose.get (); System.out.println (SoseSize); System.out.println (Kemunduran); System.out.println (Pipestring.get ());}Meringkaskan
Di atas adalah semua pengenalan rinci operasi Java Redis dalam artikel ini, saya harap ini akan membantu semua orang. Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini.