Redis - Panduan Cepat

Redis adalah sumber terbuka, penyimpanan nilai kunci tingkat lanjut dan solusi tepat untuk membangun aplikasi web berkinerja tinggi dan dapat diskalakan.

Redis memiliki tiga kekhasan utama yang membedakannya.

  • Redis menyimpan basis datanya sepenuhnya di memori, menggunakan disk hanya untuk persistensi.

  • Redis memiliki kumpulan tipe data yang relatif kaya jika dibandingkan dengan banyak penyimpanan data nilai kunci.

  • Redis dapat mereplikasi data ke sejumlah budak.

Keuntungan Redis

Berikut adalah beberapa keunggulan Redis.

  • Exceptionally fast - Redis sangat cepat dan dapat melakukan sekitar 110000 SET per detik, sekitar 81000 GET per detik.

  • Supports rich data types- Redis secara native mendukung sebagian besar tipe data yang sudah diketahui oleh pengembang seperti daftar, set, set yang diurutkan, dan hash. Hal ini memudahkan untuk memecahkan berbagai masalah karena kita tahu masalah mana yang dapat ditangani lebih baik dengan tipe datanya.

  • Operations are atomic - Semua operasi Redis bersifat atomic, yang memastikan bahwa jika dua klien mengakses secara bersamaan, server Redis akan menerima nilai yang diperbarui.

  • Multi-utility tool - Redis adalah alat multi-utilitas dan dapat digunakan dalam sejumlah kasus penggunaan seperti caching, antrian pesan (Redis secara native mendukung Publish / Subscribe), data berumur pendek apa pun dalam aplikasi Anda, seperti sesi aplikasi web, web jumlah hit halaman, dll.

Redis versus Toko Nilai Kunci Lainnya

  • Redis adalah jalur evolusi yang berbeda dalam DB nilai kunci, di mana nilai dapat berisi tipe data yang lebih kompleks, dengan operasi atomik yang ditentukan pada tipe data tersebut.

  • Redis adalah basis data dalam memori tetapi tetap pada basis data disk, oleh karena itu ia mewakili pertukaran yang berbeda di mana kecepatan tulis dan baca yang sangat tinggi dicapai dengan batasan kumpulan data yang tidak boleh lebih besar dari memori.

  • Keuntungan lain dari database dalam memori adalah representasi memori dari struktur data kompleks jauh lebih sederhana untuk dimanipulasi dibandingkan dengan struktur data yang sama pada disk. Karenanya, Redis dapat melakukan banyak hal dengan sedikit kerumitan internal.

Di bab ini, Anda akan mempelajari tentang pengaturan lingkungan untuk Redis.

Instal Redis di Ubuntu

Untuk menginstal Redis di Ubuntu, buka terminal dan ketik perintah berikut -

$sudo apt-get update $sudo apt-get install redis-server

Ini akan menginstal Redis di komputer Anda.

Mulai Redis

$redis-server

Periksa Apakah Redis Bekerja

$redis-cli

Ini akan membuka prompt redis.

redis 127.0.0.1:6379>

Pada prompt di atas, 127.0.0.1 adalah alamat IP mesin Anda dan 6379adalah port tempat server Redis berjalan. Sekarang ketikkan yang berikut iniPING perintah.

redis 127.0.0.1:6379> ping 
PONG

Ini menunjukkan bahwa Redis berhasil diinstal di mesin Anda.

Instal Redis Desktop Manager di Ubuntu

Untuk menginstal manajer desktop Redis di Ubuntu, cukup unduh paket dari https://redisdesktop.com/download

Buka paket yang diunduh dan instal.

Manajer desktop Redis akan memberi Anda UI untuk mengelola kunci dan data Redis Anda.

Di Redis, ada file konfigurasi (redis.conf) yang tersedia di direktori root Redis. Meskipun Anda bisa mendapatkan dan mengatur semua konfigurasi Redis oleh RedisCONFIG perintah.

Sintaksis

Berikut ini adalah sintaks dasar Redis CONFIG perintah.

redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME

Contoh

redis 127.0.0.1:6379> CONFIG GET loglevel  
1) "loglevel" 
2) "notice"

Untuk mendapatkan semua setelan konfigurasi, gunakan * sebagai ganti CONFIG_SETTING_NAME

Contoh

redis 127.0.0.1:6379> CONFIG GET *  
  1) "dbfilename" 
  2) "dump.rdb" 
  3) "requirepass" 
  4) "" 
  5) "masterauth" 
  6) "" 
  7) "unixsocket" 
  8) "" 
  9) "logfile" 
 10) "" 
 11) "pidfile" 
 12) "/var/run/redis.pid" 
 13) "maxmemory" 
 14) "0"
 15) "maxmemory-samples" 
 16) "3" 
 17) "timeout" 
 18) "0" 
 19) "tcp-keepalive" 
 20) "0" 
 21) "auto-aof-rewrite-percentage" 
 22) "100" 
 23) "auto-aof-rewrite-min-size" 
 24) "67108864" 
 25) "hash-max-ziplist-entries" 
 26) "512" 
 27) "hash-max-ziplist-value" 
 28) "64" 
 29) "list-max-ziplist-entries" 
 30) "512" 
 31) "list-max-ziplist-value" 
 32) "64" 
 33) "set-max-intset-entries" 
 34) "512" 
 35) "zset-max-ziplist-entries" 
 36) "128" 
 37) "zset-max-ziplist-value" 
 38) "64" 
 39) "hll-sparse-max-bytes" 
 40) "3000" 
 41) "lua-time-limit" 
 42) "5000" 
 43) "slowlog-log-slower-than" 
 44) "10000" 
 45) "latency-monitor-threshold" 
 46) "0" 
 47) "slowlog-max-len" 
 48) "128" 
 49) "port" 
 50) "6379" 
 51) "tcp-backlog" 
 52) "511" 
 53) "databases" 
 54) "16" 
 55) "repl-ping-slave-period" 
 56) "10" 
 57) "repl-timeout" 
 58) "60" 
 59) "repl-backlog-size" 
 60) "1048576" 
 61) "repl-backlog-ttl" 
 62) "3600" 
 63) "maxclients" 
 64) "4064" 
 65) "watchdog-period" 
 66) "0" 
 67) "slave-priority" 
 68) "100" 
 69) "min-slaves-to-write" 
 70) "0" 
 71) "min-slaves-max-lag" 
 72) "10" 
 73) "hz" 
 74) "10" 
 75) "no-appendfsync-on-rewrite" 
 76) "no" 
 77) "slave-serve-stale-data" 
 78) "yes" 
 79) "slave-read-only" 
 80) "yes" 
 81) "stop-writes-on-bgsave-error" 
 82) "yes" 
 83) "daemonize" 
 84) "no" 
 85) "rdbcompression" 
 86) "yes"
 87) "rdbchecksum" 
 88) "yes" 
 89) "activerehashing" 
 90) "yes" 
 91) "repl-disable-tcp-nodelay" 
 92) "no" 
 93) "aof-rewrite-incremental-fsync" 
 94) "yes" 
 95) "appendonly" 
 96) "no" 
 97) "dir" 
 98) "/home/deepak/Downloads/redis-2.8.13/src" 
 99) "maxmemory-policy" 
100) "volatile-lru" 
101) "appendfsync" 
102) "everysec" 
103) "save" 
104) "3600 1 300 100 60 10000" 
105) "loglevel" 
106) "notice" 
107) "client-output-buffer-limit" 
108) "normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60" 
109) "unixsocketperm" 
110) "0" 
111) "slaveof" 
112) "" 
113) "notify-keyspace-events" 
114) "" 
115) "bind" 
116) ""

Edit Konfigurasi

Untuk memperbarui konfigurasi, Anda dapat mengedit redis.conf file secara langsung atau Anda dapat memperbarui konfigurasi melalui CONFIG set perintah.

Sintaksis

Berikut ini adalah sintaks dasar CONFIG SET perintah.

redis 127.0.0.1:6379> CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE

Contoh

redis 127.0.0.1:6379> CONFIG SET loglevel "notice" 
OK 
redis 127.0.0.1:6379> CONFIG GET loglevel  
1) "loglevel" 
2) "notice"

Redis mendukung 5 tipe tipe data.

String

String redis adalah urutan byte. String di Redis aman biner, artinya string tersebut memiliki panjang yang diketahui tidak ditentukan oleh karakter pengakhiran khusus. Dengan demikian, Anda dapat menyimpan apa pun hingga 512 megabyte dalam satu string.

Contoh

redis 127.0.0.1:6379> SET name "tutorialspoint" 
OK 
redis 127.0.0.1:6379> GET name 
"tutorialspoint"

Dalam contoh di atas, SET dan GET adalah perintah Redis, name adalah kunci yang digunakan di Redis dan tutorialspoint adalah nilai string yang disimpan di Redis.

Note - Panjang nilai string maksimal 512 megabyte.

Hash

Hash Redis adalah kumpulan pasangan nilai kunci. Redis Hashes adalah peta antara bidang string dan nilai string. Oleh karena itu, mereka digunakan untuk merepresentasikan objek.

Contoh

redis 127.0.0.1:6379> HMSET user:1 username tutorialspoint password 
tutorialspoint points 200 
OK 
redis 127.0.0.1:6379> HGETALL user:1  
1) "username" 
2) "tutorialspoint" 
3) "password" 
4) "tutorialspoint" 
5) "points" 
6) "200"

Pada contoh di atas, tipe data hash digunakan untuk menyimpan objek pengguna yang berisi informasi dasar pengguna. SiniHMSET, HGETALL adalah perintah untuk Redis, sementara user − 1 adalah kuncinya.

Setiap hash dapat menyimpan hingga 2 32 - 1 pasangan nilai bidang (lebih dari 4 miliar).

Daftar

Daftar Redis hanyalah daftar string, diurutkan berdasarkan urutan penyisipan. Anda dapat menambahkan elemen ke Daftar Redis di kepala atau di ekor.

Contoh

redis 127.0.0.1:6379> lpush tutoriallist redis 
(integer) 1 
redis 127.0.0.1:6379> lpush tutoriallist mongodb 
(integer) 2 
redis 127.0.0.1:6379> lpush tutoriallist rabitmq 
(integer) 3 
redis 127.0.0.1:6379> lrange tutoriallist 0 10  

1) "rabitmq" 
2) "mongodb" 
3) "redis"

Panjang maksimal sebuah daftar adalah 2 32 - 1 elemen (4294967295, lebih dari 4 miliar elemen per daftar).

Set

Redis Sets adalah kumpulan string yang tidak berurutan. Di Redis, Anda dapat menambah, menghapus, dan menguji keberadaan anggota dalam kompleksitas waktu O (1).

Contoh

redis 127.0.0.1:6379> sadd tutoriallist redis 
(integer) 1 
redis 127.0.0.1:6379> sadd tutoriallist mongodb 
(integer) 1 
redis 127.0.0.1:6379> sadd tutoriallist rabitmq 
(integer) 1 
redis 127.0.0.1:6379> sadd tutoriallist rabitmq 
(integer) 0 
redis 127.0.0.1:6379> smembers tutoriallist  

1) "rabitmq" 
2) "mongodb" 
3) "redis"

Note - Dalam contoh di atas, rabitmq ditambahkan dua kali, namun karena properti unik dari himpunan, itu hanya ditambahkan sekali.

Jumlah maksimal anggota dalam satu set adalah 2 32 - 1 (4294967295, lebih dari 4 miliar anggota per set).

Set yang Disortir

Redis Sorted Sets mirip dengan Redis Sets, koleksi String yang tidak berulang. Perbedaannya adalah, setiap anggota Set yang Diurutkan dikaitkan dengan skor, yang digunakan untuk mengambil set yang diurutkan secara berurutan, dari skor terkecil hingga terbesar. Meskipun anggotanya unik, nilainya dapat diulang.

Contoh

redis 127.0.0.1:6379> zadd tutoriallist 0 redis 
(integer) 1 
redis 127.0.0.1:6379> zadd tutoriallist 0 mongodb 
(integer) 1 
redis 127.0.0.1:6379> zadd tutoriallist 0 rabitmq 
(integer) 1 
redis 127.0.0.1:6379> zadd tutoriallist 0 rabitmq 
(integer) 0 
redis 127.0.0.1:6379> ZRANGEBYSCORE tutoriallist 0 1000  

1) "redis" 
2) "mongodb" 
3) "rabitmq"

Perintah Redis digunakan untuk melakukan beberapa operasi di server Redis.

Untuk menjalankan perintah di server Redis, Anda memerlukan klien Redis. Klien Redis tersedia dalam paket Redis, yang telah kami instal sebelumnya.

Sintaksis

Berikut ini adalah sintaks dasar klien Redis.

$redis-cli

Contoh

Contoh berikut menjelaskan bagaimana kita dapat memulai klien Redis.

Untuk memulai klien Redis, buka terminal dan ketik perintah redis-cli. Ini akan terhubung ke server lokal Anda dan sekarang Anda dapat menjalankan perintah apa pun.

$redis-cli 
redis 127.0.0.1:6379> 
redis 127.0.0.1:6379> PING  
PONG

Dalam contoh di atas, kami terhubung ke server Redis yang berjalan di mesin lokal dan menjalankan perintah PING, yang memeriksa apakah server sedang berjalan atau tidak.

Jalankan Perintah di Server Jarak Jauh

Untuk menjalankan perintah di server jarak jauh Redis, Anda harus terhubung ke server dengan klien yang sama redis-cli

Sintaksis

$ redis-cli -h host -p port -a password

Contoh

Contoh berikut menunjukkan cara menyambung ke server jarak jauh Redis, berjalan pada host 127.0.0.1, port 6379 dan memiliki sandi mypass.

$redis-cli -h 127.0.0.1 -p 6379 -a "mypass" 
redis 127.0.0.1:6379> 
redis 127.0.0.1:6379> PING  
PONG

Perintah tombol Redis digunakan untuk mengelola kunci di Redis. Berikut ini adalah sintaks untuk menggunakan perintah tombol redis.

Sintaksis

redis 127.0.0.1:6379> COMMAND KEY_NAME

Contoh

redis 127.0.0.1:6379> SET tutorialspoint redis 
OK 
redis 127.0.0.1:6379> DEL tutorialspoint 
(integer) 1

Dalam contoh di atas, DEL adalah perintahnya, sementara tutorialspointadalah kuncinya. Jika kunci dihapus, maka output dari perintah akan menjadi (integer) 1, jika tidak maka akan menjadi (integer) 0.

Perintah Redis Keys

Tabel berikut mencantumkan beberapa perintah dasar yang terkait dengan kunci.

Sr Tidak Perintah & Deskripsi
1 Tombol DEL

Perintah ini menghapus kunci, jika ada.

2 Kunci DUMP

Perintah ini mengembalikan versi serial dari nilai yang disimpan di kunci yang ditentukan.

3 EXISTS key

Perintah ini memeriksa apakah kuncinya ada atau tidak.

4 Detik kunci EXPIRE

Mengatur kadaluwarsa kunci setelah waktu yang ditentukan.

5 Stempel waktu kunci EXPIREAT

Mengatur kadaluwarsa kunci setelah waktu yang ditentukan. Di sini waktu dalam format stempel waktu Unix.

6 Milidetik kunci PEXPIRE

Setel kadaluwarsa kunci dalam milidetik.

7 Stempel milidetik-waktu kunci PEXPIREAT

Menyetel kedaluwarsa kunci di stempel waktu Unix yang ditentukan sebagai milidetik.

8 Pola KUNCI

Menemukan semua kunci yang cocok dengan pola yang ditentukan.

9 PINDAHKAN db kunci

Memindahkan kunci ke database lain.

10 Tombol PERSIST

Menghapus kedaluwarsa dari kunci.

11 Kunci PTTL

Mendapat sisa waktu dalam kadaluwarsa kunci dalam milidetik.

12 Kunci TTL

Mendapat sisa waktu dalam kadaluwarsa kunci.

13 ACAK

Mengembalikan kunci acak dari Redis.

14 RENAME key newkey

Mengubah nama kunci.

15 Kunci baru RENAMENX

Ubah nama kunci, jika kunci baru tidak ada.

16 Kunci TYPE

Mengembalikan tipe data dari nilai yang disimpan dalam kunci.

Perintah string Redis digunakan untuk mengelola nilai string di Redis. Berikut adalah sintaks untuk menggunakan perintah string Redis.

Sintaksis

redis 127.0.0.1:6379> COMMAND KEY_NAME

Contoh

redis 127.0.0.1:6379> SET tutorialspoint redis 
OK 
redis 127.0.0.1:6379> GET tutorialspoint 
"redis"

Dalam contoh di atas, SET dan GET adalah perintah, sementara tutorialspoint adalah kuncinya.

Perintah Redis Strings

Tabel berikut mencantumkan beberapa perintah dasar untuk mengelola string di Redis.

Sr Tidak Perintah & Deskripsi
1 SET nilai kunci

Perintah ini menetapkan nilai pada kunci yang ditentukan.

2 GET key

Mendapat nilai kunci.

3 GETRANGE key start end

Mendapat substring dari string yang disimpan di sebuah kunci.

4 GETSET nilai kunci

Menetapkan nilai string kunci dan mengembalikan nilai lamanya.

5 GETBIT key offset

Mengembalikan nilai bit pada offset dalam nilai string yang disimpan pada kunci.

6 MGET key1 [key2 ..]

Mendapatkan nilai dari semua kunci yang diberikan

7 Nilai offset kunci SETBIT

Menetapkan atau membersihkan bit di offset dalam nilai string yang disimpan di kunci

8 Nilai detik kunci SETEX

Menetapkan nilai dengan kadaluwarsa kunci

9 Nilai kunci SETNX

Menetapkan nilai kunci, hanya jika kunci tersebut tidak ada

10 SETRANGE nilai offset kunci

Menimpa bagian dari string pada kunci yang dimulai pada offset yang ditentukan

11 Kunci STRLEN

Mendapat panjang nilai yang disimpan dalam kunci

12 Nilai kunci MSET [nilai kunci ...]

Setel banyak kunci untuk beberapa nilai

13 Nilai kunci MSETNX [nilai kunci ...]

Menyetel beberapa kunci menjadi beberapa nilai, hanya jika tidak ada kunci yang ada

14 Nilai milidetik kunci PSETEX

Menetapkan nilai dan kedaluwarsa dalam milidetik kunci

15 Kunci INCR

Menambahkan nilai integer dari sebuah kunci sebanyak satu

16 Penambahan kunci INCRBY

Menambahkan nilai integer kunci dengan jumlah yang ditentukan

17 Penambahan kunci INCRBYFLOAT

Menambahkan nilai float dari sebuah kunci dengan jumlah yang ditentukan

18 Kunci DECR

Mengurangi nilai integer sebuah kunci sebanyak satu

19 Penurunan kunci DECRBY

Mengurangi nilai integer dari sebuah kunci dengan angka yang diberikan

20 TAMBAH nilai kunci

Menambahkan nilai ke kunci

Redis Hashes adalah peta antara bidang string dan nilai string. Karenanya, mereka adalah tipe data yang sempurna untuk merepresentasikan objek.

Di Redis, setiap hash dapat menyimpan hingga lebih dari 4 miliar pasangan nilai bidang.

Contoh

redis 127.0.0.1:6379> HMSET tutorialspoint name "redis tutorial" 
description "redis basic commands for caching" likes 20 visitors 23000 
OK 
redis 127.0.0.1:6379> HGETALL tutorialspoint  
1) "name" 
2) "redis tutorial" 
3) "description" 
4) "redis basic commands for caching" 
5) "likes" 
6) "20" 
7) "visitors" 
8) "23000"

Dalam contoh di atas, kami telah menetapkan detail tutorial Redis (nama, deskripsi, suka, pengunjung) dalam hash bernama 'tutorialspoint'.

Perintah Redis Hash

Tabel berikut mencantumkan beberapa perintah dasar yang terkait dengan hash.

Sr Tidak Perintah & Deskripsi
1 HDEL key field2 [field2]

Menghapus satu atau lebih bidang hash.

2 Bidang kunci HEXISTS

Menentukan apakah bidang hash ada atau tidak.

3 Bidang kunci HGET

Mendapatkan nilai bidang hash yang disimpan di kunci yang ditentukan.

4 Kunci HGETALL

Mendapatkan semua bidang dan nilai yang disimpan dalam hash pada kunci yang ditentukan

5 Peningkatan bidang kunci HINCRBY

Menambahkan nilai integer dari bidang hash dengan angka yang ditentukan

6 Peningkatan bidang kunci HINCRBYFLOAT

Menambahkan nilai float dari bidang hash dengan jumlah yang ditentukan

7 Kunci HKEYS

Mendapatkan semua bidang dalam hash

8 Kunci HLEN

Mendapat jumlah bidang dalam hash

9 Bidang kunci HMGET1 [bidang2]

Mendapatkan nilai dari semua bidang hash yang diberikan

10 Nilai bidang1 kunci HMSET1 [nilai bidang2]

Set beberapa bidang hash ke beberapa nilai

11 Nilai kolom kunci HSET

Menetapkan nilai string bidang hash

12 Nilai kolom kunci HSETNX

Menyetel nilai bidang hash, hanya jika bidang tersebut tidak ada

13 Kunci HVALS

Mendapatkan semua nilai dalam sebuah hash

14 Kursor kunci HSCAN [pola MATCH] [JUMLAH hitungan]

Secara bertahap mengiterasi bidang hash dan nilai terkait

Daftar Redis hanyalah daftar string, diurutkan berdasarkan urutan penyisipan. Anda dapat menambahkan elemen dalam daftar Redis di kepala atau di belakang daftar.

Panjang maksimum sebuah daftar adalah 2 32 - 1 elemen (4294967295, lebih dari 4 miliar elemen per daftar).

Contoh

redis 127.0.0.1:6379> LPUSH tutorials redis 
(integer) 1 
redis 127.0.0.1:6379> LPUSH tutorials mongodb 
(integer) 2 
redis 127.0.0.1:6379> LPUSH tutorials mysql 
(integer) 3 
redis 127.0.0.1:6379> LRANGE tutorials 0 10  
1) "mysql" 
2) "mongodb" 
3) "redis"

Dalam contoh di atas, tiga nilai dimasukkan ke dalam daftar Redis bernama 'tutorials' dengan perintah LPUSH.

Perintah Daftar Redis

Tabel berikut mencantumkan beberapa perintah dasar yang terkait dengan daftar.

Sr Tidak Perintah & Deskripsi
1 Batas waktu tombol1 [key2] BLPOP

Menghapus dan mendapatkan elemen pertama dalam daftar, atau blokir hingga tersedia

2 BRPOP key1 [key2] timeout

Menghapus dan mendapatkan elemen terakhir dalam daftar, atau blok sampai tersedia

3 Batas waktu tujuan sumber BRPOPLPUSH

Munculkan nilai dari daftar, dorong ke daftar lain dan kembalikan; atau blok sampai tersedia

4 Indeks kunci LINDEX

Mendapat elemen dari daftar dengan indeksnya

5 LINSERT key SEBELUM | SETELAH nilai pivot

Menyisipkan elemen sebelum atau sesudah elemen lain dalam daftar

6 Kunci LLEN

Mendapat panjang daftar

7 Kunci LPOP

Menghapus dan mendapatkan elemen pertama dalam daftar

8 Nilai kunci LPUSH1 [nilai2]

Menambahkan satu atau beberapa nilai ke daftar

9 Nilai kunci LPUSHX

Menambahkan nilai ke daftar, hanya jika daftar itu ada

10 LRANGE key start stop

Mendapat berbagai elemen dari daftar

11 Nilai hitungan kunci LREM

Menghapus elemen dari daftar

12 Nilai indeks kunci LSET

Menetapkan nilai elemen dalam daftar berdasarkan indeksnya

13 Kunci LTRIM mulai berhenti

Memangkas daftar ke kisaran yang ditentukan

14 Kunci RPOP

Menghapus dan mendapatkan elemen terakhir dalam daftar

15 Tujuan sumber RPOPLPUSH

Menghapus elemen terakhir dalam daftar, menambahkannya ke daftar lain dan mengembalikannya

16 Nilai kunci RPUSH1 [nilai2]

Menambahkan satu atau beberapa nilai ke daftar

17 Nilai kunci RPUSHX

Menambahkan nilai ke daftar, hanya jika daftar tersebut ada

Redis Sets adalah kumpulan string unik yang tidak berurutan. Unique means sets tidak memungkinkan pengulangan data dalam sebuah kunci.

Di Redis set tambahkan, hapus, dan uji keberadaan anggota dalam O (1) (waktu konstan terlepas dari jumlah elemen yang terkandung di dalam Set). Panjang maksimum daftar adalah 2 32 - 1 elemen (4294967295, lebih dari 4 miliar elemen per set).

Contoh

redis 127.0.0.1:6379> SADD tutorials redis 
(integer) 1 
redis 127.0.0.1:6379> SADD tutorials mongodb 
(integer) 1 
redis 127.0.0.1:6379> SADD tutorials mysql 
(integer) 1 
redis 127.0.0.1:6379> SADD tutorials mysql 
(integer) 0 
redis 127.0.0.1:6379> SMEMBERS tutorials  
1) "mysql" 
2) "mongodb" 
3) "redis"

Dalam contoh di atas, tiga nilai disisipkan dalam set Redis bernama 'tutorials' dengan perintah SADD.

Redis Mengatur Perintah

Tabel berikut mencantumkan beberapa perintah dasar yang terkait dengan kumpulan.

Sr Tidak Perintah & Deskripsi
1 Anggota kunci SADD1 [anggota2]

Menambahkan satu atau lebih anggota ke satu set

2 Kunci SCARD

Mendapat jumlah anggota dalam satu set

3 SDIFF key1 [key2]

Mengurangi beberapa set

4 SDIFFSTORE kunci tujuan1 [key2]

Mengurangi beberapa set dan menyimpan set yang dihasilkan dalam sebuah kunci

5 SINTER key1 [key2]

Memotong beberapa set

6 SINTERSTORE kunci tujuan1 [key2]

Memotong beberapa set dan menyimpan set yang dihasilkan dalam sebuah kunci

7 Anggota kunci SISMEMBER

Menentukan apakah nilai tertentu adalah anggota himpunan

8 Kunci SMEMBERS

Mendapat semua anggota dalam satu set

9 Anggota tujuan sumber SMOVE

Memindahkan anggota dari satu set ke set lainnya

10 Kunci SPOP

Menghapus dan mengembalikan anggota acak dari satu set

11 Kunci SRANDMEMBER [hitungan]

Mendapat satu atau beberapa anggota acak dari satu set

12 Anggota kunci SREM1 [anggota2]

Menghapus satu atau lebih anggota dari satu set

13 SUNION key1 [key2]

Menambahkan beberapa set

14 SUNIONSTORE tujuan kunci1 [key2]

Menambahkan beberapa set dan menyimpan set yang dihasilkan dalam sebuah kunci

15 Kursor tombol SSCAN [pola MATCH] [hitungan JUMLAH]

Secara bertahap mengiterasi elemen set

Redis Sorted Sets mirip dengan Redis Sets dengan fitur unik dari nilai yang disimpan dalam satu set. Perbedaannya adalah, setiap anggota Set yang Diurutkan dikaitkan dengan skor, yang digunakan untuk mengambil set yang diurutkan secara berurutan, dari skor terkecil hingga terbesar.

Dalam set yang diurutkan Redis, tambahkan, hapus, dan uji keberadaan anggota dalam O (1) (waktu konstan terlepas dari jumlah elemen yang terkandung di dalam set). Panjang maksimum sebuah daftar adalah 2 32 - 1 elemen (4294967295, lebih dari 4 miliar elemen per set).

Contoh

redis 127.0.0.1:6379> ZADD tutorials 1 redis 
(integer) 1 
redis 127.0.0.1:6379> ZADD tutorials 2 mongodb 
(integer) 1 
redis 127.0.0.1:6379> ZADD tutorials 3 mysql 
(integer) 1 
redis 127.0.0.1:6379> ZADD tutorials 3 mysql 
(integer) 0 
redis 127.0.0.1:6379> ZADD tutorials 4 mysql 
(integer) 0 
redis 127.0.0.1:6379> ZRANGE tutorials 0 10 WITHSCORES  
1) "redis" 
2) "1" 
3) "mongodb" 
4) "2" 
5) "mysql" 
6) "4"

Dalam contoh di atas, tiga nilai disisipkan dengan skornya di set yang diurutkan Redis bernama 'tutorials' dengan perintah ZADD.

Redis Sorted Sets Commands

Tabel berikut mencantumkan beberapa perintah dasar yang terkait dengan kumpulan yang diurutkan.

Sr Tidak Perintah & Deskripsi
1 Skor kunci ZADD1 anggota1 [skor2 anggota2]

Menambahkan satu atau lebih anggota ke set yang diurutkan, atau memperbarui skornya, jika sudah ada

2 Kunci ZCARD

Mendapatkan jumlah anggota dalam set yang diurutkan

3 ZCOUNT kunci maks

Menghitung anggota dalam set yang diurutkan dengan skor dalam nilai yang diberikan

4 Anggota penambahan kunci ZINCRBY

Menambah skor anggota dalam set yang diurutkan

5 ZINTERSTORE tujuan numkeys key [key ...]

Memotong beberapa set yang diurutkan dan menyimpan set yang diurutkan yang dihasilkan dalam kunci baru

6 ZLEXCOUNT kunci maks

Menghitung jumlah anggota dalam set yang diurutkan antara rentang leksikografis tertentu

7 ZRANGE key start stop [WITHSCORES]

Mengembalikan rentang anggota dalam kumpulan yang diurutkan, berdasarkan indeks

8 Maksimum kunci ZRANGEBYLEX [LIMIT jumlah offset]

Mengembalikan rentang anggota dalam kumpulan yang diurutkan, menurut rentang leksikografis

9 Kunci ZRANGEBYSCORE min maks [WITHSCORES] [LIMIT]

Mengembalikan kisaran anggota dalam set yang diurutkan, berdasarkan skor

10 Anggota kunci ZRANK

Menentukan indeks anggota dalam set yang diurutkan

11 Anggota kunci ZREM [anggota ...]

Menghapus satu atau lebih anggota dari kumpulan yang diurutkan

12 Kunci ZREMRANGEBYLEX min maks

Menghapus semua anggota dalam satu set yang diurutkan antara rentang leksikografis yang diberikan

13 ZREMRANGEBYRANK kunci mulai berhenti

Menghapus semua anggota dalam set yang diurutkan dalam indeks yang diberikan

14 ZREMRANGEBYSCORE kunci min maks

Menghapus semua anggota dalam set yang diurutkan dalam skor yang diberikan

15 ZREVRANGE key start stop [WITHSCORES]

Menampilkan rentang anggota dalam kumpulan yang diurutkan, berdasarkan indeks, dengan skor yang diurutkan dari tinggi ke rendah

16 ZREVRANGEBYSCORE kunci maks. [WITHSCORES]

Menampilkan berbagai anggota dalam set yang diurutkan, berdasarkan skor, dengan skor yang diurutkan dari tinggi ke rendah

17 Anggota kunci ZREVRANK

Menentukan indeks anggota dalam set yang diurutkan, dengan skor yang diurutkan dari tinggi ke rendah

18 Anggota kunci ZSCORE

Mendapat skor yang terkait dengan anggota yang diberikan dalam set yang diurutkan

19 ZUNIONSTORE tujuan numkeys key [key ...]

Menambahkan beberapa set yang diurutkan dan menyimpan set yang diurutkan yang dihasilkan dalam kunci baru

20 Kursor tombol ZSCAN [pola MATCH] [JUMLAH hitungan]

Secara bertahap mengiterasi elemen set yang diurutkan dan skor terkait

Redis HyperLogLog adalah algoritme yang menggunakan pengacakan untuk memberikan perkiraan jumlah elemen unik dalam satu set dengan hanya menggunakan sebuah konstanta, dan sejumlah kecil memori.

HyperLogLog memberikan perkiraan yang sangat baik dari kardinalitas suatu himpunan bahkan menggunakan sejumlah kecil memori sekitar 12 kbytes per kunci dengan kesalahan standar 0,81%. Tidak ada batasan jumlah item yang dapat Anda hitung, kecuali jika Anda mendekati 2 64 item.

Contoh

Contoh berikut menjelaskan cara kerja Redis HyperLogLog.

redis 127.0.0.1:6379> PFADD tutorials "redis"  
1) (integer) 1  
redis 127.0.0.1:6379> PFADD tutorials "mongodb"  
1) (integer) 1  
redis 127.0.0.1:6379> PFADD tutorials "mysql"  
1) (integer) 1  
redis 127.0.0.1:6379> PFCOUNT tutorials  
(integer) 3

Redis Perintah HyperLogLog

Tabel berikut mencantumkan beberapa perintah dasar yang terkait dengan Redis HyperLogLog.

Sr Tidak Perintah & Deskripsi
1 Elemen kunci PFADD [elemen ...]

Menambahkan elemen tertentu ke HyperLogLog yang ditentukan.

2 PFCOUNT kunci [kunci ...]

Mengembalikan perkiraan kardinalitas dari himpunan yang diamati oleh HyperLogLog pada kunci.

3 PFMERGE destkey sumber [kunci sumber ...]

Menggabungkan N HyperLogLog yang berbeda menjadi satu.

Redis Pub / Sub mengimplementasikan sistem pesan di mana pengirim (dalam terminologi redis disebut penerbit) mengirim pesan sementara penerima (pelanggan) menerimanya. Tautan yang digunakan untuk mentransfer pesan disebutchannel.

Di Redis, klien dapat berlangganan sejumlah saluran.

Contoh

Contoh berikut menjelaskan cara kerja konsep mempublikasikan pelanggan. Dalam contoh berikut, satu klien berlangganan saluran bernama 'redisChat'.

redis 127.0.0.1:6379> SUBSCRIBE redisChat  
Reading messages... (press Ctrl-C to quit) 
1) "subscribe" 
2) "redisChat" 
3) (integer) 1

Sekarang, dua klien memublikasikan pesan di saluran yang sama bernama 'redisChat' dan klien yang berlangganan di atas menerima pesan.

redis 127.0.0.1:6379> PUBLISH redisChat "Redis is a great caching technique"  
(integer) 1  
redis 127.0.0.1:6379> PUBLISH redisChat "Learn redis by tutorials point"  
(integer) 1   
1) "message" 
2) "redisChat" 
3) "Redis is a great caching technique" 
1) "message" 
2) "redisChat" 
3) "Learn redis by tutorials point"

Perintah Redis PubSub

Tabel berikut mencantumkan beberapa perintah dasar yang terkait dengan Redis Pub / Sub.

Sr Tidak Perintah & Deskripsi
1 Pola PSUBSCRIBE [pola ...]

Berlangganan ke saluran yang cocok dengan pola yang diberikan.

2 Subperintah PUBSUB [argumen [argumen ...]]

Memberi tahu status sistem Pub / Sub. Misalnya, klien mana yang aktif di server.

3 PUBLIKASIKAN pesan saluran

Mengeposkan pesan ke saluran.

4 PUNSUBSCRIBE [pola [pola ...]]

Berhenti mendengarkan pesan yang diposting ke saluran yang cocok dengan pola yang diberikan.

5 SUBSCRIBE channel [channel ...]

Mendengarkan pesan yang dipublikasikan ke saluran tertentu.

6 BERHENTI BERLANGGANAN [saluran [saluran ...]]

Berhenti mendengarkan pesan yang diposting ke saluran tertentu.

Transaksi redis memungkinkan eksekusi sekelompok perintah dalam satu langkah. Berikut adalah dua properti Transaksi.

  • Semua perintah dalam transaksi dijalankan secara berurutan sebagai operasi tunggal yang terisolasi. Permintaan yang dikeluarkan oleh klien lain tidak mungkin dilayani di tengah pelaksanaan transaksi Redis.

  • Transaksi Redis juga atom. Atomic berarti semua perintah atau tidak ada yang diproses.

Sampel

Transaksi redis dimulai dengan perintah MULTI dan kemudian Anda harus memberikan daftar perintah yang harus dijalankan dalam transaksi, setelah itu seluruh transaksi akan dieksekusi EXEC perintah.

redis 127.0.0.1:6379> MULTI 
OK 
List of commands here 
redis 127.0.0.1:6379> EXEC

Contoh

Contoh berikut menjelaskan bagaimana transaksi Redis dapat dimulai dan dijalankan.

redis 127.0.0.1:6379> MULTI 
OK 
redis 127.0.0.1:6379> SET tutorial redis 
QUEUED 
redis 127.0.0.1:6379> GET tutorial 
QUEUED 
redis 127.0.0.1:6379> INCR visitors 
QUEUED 
redis 127.0.0.1:6379> EXEC  
1) OK 
2) "redis" 
3) (integer) 1

Perintah Transaksi Redis

Tabel berikut menunjukkan beberapa perintah dasar yang terkait dengan transaksi Redis.

Sr Tidak Perintah & Deskripsi
1 MEMBUANG

Buang semua perintah yang dikeluarkan setelah MULTI

2 LAKUKAN

Menjalankan semua perintah yang dikeluarkan setelah MULTI

3 MULTI

Menandai dimulainya blok transaksi

4 UNWATCH

Lupa tentang semua kunci yang diawasi

5 TONTON kunci [kunci ...]

Perhatikan kunci yang diberikan untuk menentukan eksekusi blok MULTI / EXEC

Pembuatan skrip Redis digunakan untuk mengevaluasi skrip menggunakan juru bahasa Lua. Itu dibangun ke dalam Redis mulai dari versi 2.6.0. Perintah yang digunakan untuk pembuatan skrip adalahEVAL perintah.

Sintaksis

Berikut ini adalah sintaks dasar EVAL perintah.

redis 127.0.0.1:6379> EVAL script numkeys key [key ...] arg [arg ...]

Contoh

Contoh berikut menjelaskan cara kerja skrip Redis.

redis 127.0.0.1:6379> EVAL "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 
key2 first second  
1) "key1" 
2) "key2" 
3) "first" 
4) "second"

Perintah Redis Scripting

Tabel berikut mencantumkan beberapa perintah dasar yang terkait dengan Redis Scripting.

Sr Tidak Perintah & Deskripsi
1 EVAL skrip numkeys key [key ...] arg [arg ...]

Menjalankan skrip Lua.

2 EVALSHA sha1 numkeys key [key ...] arg [arg ...]

Menjalankan skrip Lua.

3 SCRIPT EXISTS script [script ...]

Memeriksa keberadaan skrip di cache skrip.

4 SCRIPT FLUSH

Menghapus semua skrip dari cache skrip.

5 SCRIPT KILL

Membunuh skrip yang sedang dieksekusi.

6 SCRIPT LOAD script

Memuat skrip Lua yang ditentukan ke dalam cache skrip.

Perintah koneksi Redis pada dasarnya digunakan untuk mengelola koneksi klien dengan server Redis.

Contoh

Contoh berikut menjelaskan bagaimana klien mengautentikasi dirinya sendiri ke server Redis dan memeriksa apakah server berjalan atau tidak.

redis 127.0.0.1:6379> AUTH "password" 
OK 
redis 127.0.0.1:6379> PING 
PONG

Perintah Koneksi Redis

Tabel berikut mencantumkan beberapa perintah dasar yang terkait dengan koneksi Redis.

Sr Tidak Perintah & Deskripsi
1 AUTH password

Otentikasi ke server dengan kata sandi yang diberikan

2 Pesan ECHO

Mencetak string yang diberikan

3 PING

Memeriksa apakah server sedang berjalan atau tidak

4 BERHENTI

Menutup koneksi saat ini

5 PILIH indeks

Mengubah database yang dipilih untuk koneksi saat ini

Perintah server Redis pada dasarnya digunakan untuk mengelola server Redis.

Contoh

Contoh berikut menjelaskan bagaimana kita bisa mendapatkan semua statistik dan informasi tentang server.

redis 127.0.0.1:6379> INFO  

# Server 
redis_version:2.8.13 
redis_git_sha1:00000000 
redis_git_dirty:0 
redis_build_id:c2238b38b1edb0e2 
redis_mode:standalone 
os:Linux 3.5.0-48-generic x86_64 
arch_bits:64 
multiplexing_api:epoll 
gcc_version:4.7.2 
process_id:3856 
run_id:0e61abd297771de3fe812a3c21027732ac9f41fe 
tcp_port:6379 
uptime_in_seconds:11554 
uptime_in_days:0 hz:10 
lru_clock:16651447 
config_file:  

# Clients 
connected_clients:1
client_longest_output_list:0 
client_biggest_input_buf:0 
blocked_clients:0  

# Memory 
used_memory:589016 
used_memory_human:575.21K 
used_memory_rss:2461696 
used_memory_peak:667312 
used_memory_peak_human:651.67K 
used_memory_lua:33792 
mem_fragmentation_ratio:4.18 
mem_allocator:jemalloc-3.6.0  

# Persistence 
loading:0 
rdb_changes_since_last_save:3 
rdb_bgsave_in_progress:0 
rdb_last_save_time:1409158561 
rdb_last_bgsave_status:ok 
rdb_last_bgsave_time_sec:0 
rdb_current_bgsave_time_sec:-1 
aof_enabled:0 
aof_rewrite_in_progress:0 
aof_rewrite_scheduled:0 
aof_last_rewrite_time_sec:-1 
aof_current_rewrite_time_sec:-1 
aof_last_bgrewrite_status:ok 
aof_last_write_status:ok  

# Stats 
total_connections_received:24 
total_commands_processed:294 
instantaneous_ops_per_sec:0 
rejected_connections:0 
sync_full:0 
sync_partial_ok:0 
sync_partial_err:0 
expired_keys:0 
evicted_keys:0 
keyspace_hits:41
keyspace_misses:82 
pubsub_channels:0 
pubsub_patterns:0 
latest_fork_usec:264  

# Replication 
role:master 
connected_slaves:0 
master_repl_offset:0 
repl_backlog_active:0 
repl_backlog_size:1048576 
repl_backlog_first_byte_offset:0 
repl_backlog_histlen:0  

# CPU 
used_cpu_sys:10.49 
used_cpu_user:4.96 
used_cpu_sys_children:0.00 
used_cpu_user_children:0.01  

# Keyspace 
db0:keys = 94,expires = 1,avg_ttl = 41638810 
db1:keys = 1,expires = 0,avg_ttl = 0 
db3:keys = 1,expires = 0,avg_ttl = 0

Perintah Redis Server

Tabel berikut mencantumkan beberapa perintah dasar yang terkait dengan server Redis.

Sr Tidak Perintah & Deskripsi
1 BGREWRITEAOF

Menulis ulang file hanya-tambahan secara asinkron

2 BGSAVE

Menyimpan kumpulan data ke disk secara tidak bersamaan

3 KLIEN MEMBUNUH [ip: port] [ID klien-id]

Membunuh koneksi klien

4 DAFTAR KLIEN

Mendapat daftar koneksi klien ke server

5 GETNAME KLIEN

Mendapat nama koneksi saat ini

6 CLIENT PAUSE timeout

Berhenti memproses perintah dari klien untuk waktu tertentu

7 CLIENT SETNAME nama koneksi

Setel nama koneksi saat ini

8 SLOT CLUSTER

Mendapat array slot Cluster ke pemetaan node

9 PERINTAH

Mendapatkan larik detail perintah Redis

10 PERINTAH HITUNGAN

Mendapatkan jumlah total perintah Redis

11 PERINTAH GETKEYS

Ekstrak kunci yang diberi perintah Redis lengkap

12 BGSAVE

Menyimpan kumpulan data ke disk secara tidak bersamaan

13 INFO PERINTAH nama-perintah [nama-perintah ...]

Mendapatkan larik detail perintah Redis tertentu

14 CONFIG GET parameter

Mendapat nilai parameter konfigurasi

15 KONFIGURASI REWRITE

Menulis ulang file konfigurasi dengan konfigurasi dalam memori

16 CONFIG SET nilai parameter

Menetapkan parameter konfigurasi ke nilai yang diberikan

17 KONFIGURASI RESET

Menyetel ulang statistik yang dikembalikan oleh INFO

18 DBSIZE

Mengembalikan jumlah kunci dalam database yang dipilih

19 Kunci DEBUG OBJECT

Mendapat informasi debugging tentang sebuah kunci

20 DEBUG SEGFAULT

Membuat server mogok

21 FLUSHALL

Menghapus semua kunci dari semua database

22 FLUSHDB

Menghapus semua kunci dari database saat ini

23 INFO [bagian]

Mendapat informasi dan statistik tentang server

24 LASTSAVE

Mendapatkan cap waktu UNIX dari penyimpanan terakhir yang berhasil ke disk

25 MONITOR

Mendengarkan semua permintaan yang diterima oleh server secara real time

26 WEWENANG

Mengembalikan peran instance dalam konteks replikasi

27 MENYIMPAN

Menyimpan kumpulan data ke disk secara bersamaan

28 DIMUTUSKAN [NOSAVE] [SIMPAN]

Menyimpan dataset secara bersamaan ke disk dan kemudian mematikan server

29 Port host SLAVEOF

Menjadikan server sebagai budak dari instance lain, atau mempromosikannya sebagai master

30 Subperintah SLOWLOG [argumen]

Mengelola log kueri lambat Redis

31 SINKRONKAN

Perintah yang digunakan untuk replikasi

32 WAKTU

Mengembalikan waktu server saat ini

Redis SAVE perintah digunakan untuk membuat cadangan basis data Redis saat ini.

Sintaksis

Berikut ini adalah sintaks dasar redis SAVE perintah.

127.0.0.1:6379> SAVE

Contoh

Contoh berikut membuat cadangan dari database saat ini.

127.0.0.1:6379> SAVE  
OK

Perintah ini akan membuat file dump.rdb file di direktori Redis Anda.

Pulihkan Data Redis

Untuk memulihkan data Redis, pindahkan file cadangan Redis (dump.rdb) ke direktori Redis Anda dan mulai server. Untuk mendapatkan direktori Redis Anda, gunakanCONFIG perintah Redis seperti yang ditunjukkan di bawah ini.

127.0.0.1:6379> CONFIG get dir  
1) "dir" 
2) "/user/tutorialspoint/redis-2.8.13/src"

Dalam output dari perintah di atas /user/tutorialspoint/redis-2.8.13/src adalah direktori tempat server Redis diinstal.

Bgsave

Untuk membuat cadangan Redis, perintah alternatif BGSAVEjuga tersedia. Perintah ini akan memulai proses pencadangan dan menjalankannya di latar belakang.

Contoh

127.0.0.1:6379> BGSAVE  
Background saving started

Database Redis dapat diamankan, sehingga setiap klien yang membuat sambungan perlu mengautentikasi sebelum menjalankan perintah. Untuk mengamankan Redis, Anda perlu mengatur kata sandi di file konfigurasi.

Contoh

Contoh berikut menunjukkan langkah-langkah untuk mengamankan instance Redis Anda.

127.0.0.1:6379> CONFIG get requirepass 
1) "requirepass" 
2) ""

Secara default, properti ini kosong, yang berarti tidak ada kata sandi yang disetel untuk instance ini. Anda dapat mengubah properti ini dengan menjalankan perintah berikut.

127.0.0.1:6379> CONFIG set requirepass "tutorialspoint" 
OK 
127.0.0.1:6379> CONFIG get requirepass 
1) "requirepass" 
2) "tutorialspoint"

Setelah mengatur kata sandi, jika ada klien yang menjalankan perintah tanpa otentikasi, maka (error) NOAUTH Authentication required. kesalahan akan kembali. Oleh karena itu, klien perlu menggunakanAUTH perintah untuk mengotentikasi dirinya sendiri.

Sintaksis

Berikut ini adalah sintaks dasar AUTH perintah.

127.0.0.1:6379> AUTH password

Contoh

127.0.0.1:6379> AUTH "tutorialspoint" 
OK 
127.0.0.1:6379> SET mykey "Test value" 
OK 
127.0.0.1:6379> GET mykey 
"Test value"

Tolok ukur Redis adalah utilitas untuk memeriksa kinerja Redis dengan menjalankan n perintah secara bersamaan.

Sintaksis

Berikut ini adalah sintaks dasar dari benchmark Redis.

redis-benchmark [option] [option value]

Contoh

Contoh berikut memeriksa Redis dengan memanggil 100000 perintah.

redis-benchmark -n 100000  

PING_INLINE: 141043.72 requests per second 
PING_BULK: 142857.14 requests per second 
SET: 141442.72 requests per second 
GET: 145348.83 requests per second 
INCR: 137362.64 requests per second 
LPUSH: 145348.83 requests per second 
LPOP: 146198.83 requests per second 
SADD: 146198.83 requests per second 
SPOP: 149253.73 requests per second 
LPUSH (needed to benchmark LRANGE): 148588.42 requests per second 
LRANGE_100 (first 100 elements): 58411.21 requests per second 
LRANGE_300 (first 300 elements): 21195.42 requests per second 
LRANGE_500 (first 450 elements): 14539.11 requests per second 
LRANGE_600 (first 600 elements): 10504.20 requests per second 
MSET (10 keys): 93283.58 requests per second

Berikut adalah daftar opsi yang tersedia di benchmark Redis.

Sr Tidak Pilihan Deskripsi Nilai Default
1 -h Menentukan nama host server 127.0.0.1
2 -p Menentukan port server 6379
3 -s Menentukan soket server
4 -c Menentukan jumlah koneksi paralel 50
5 -n Menentukan jumlah total permintaan 10000
6 -d Menentukan ukuran data nilai SET / GET dalam byte 2
7 -k 1 = tetap hidup, 0 = sambungkan kembali 1
8 -r Gunakan kunci acak untuk SET / GET / INCR, nilai acak untuk SADD
9 -p Permintaan <numreq> Pipeline 1
10 -h Menentukan nama host server
11 -q Paksa Tenang ke Redis. Hanya menunjukkan nilai kueri / detik
12 --csv Output dalam format CSV
13 -l Menghasilkan loop, Jalankan tes selamanya
14 -t Hanya menjalankan daftar pengujian yang dipisahkan koma
15 -I Mode siaga. Buka saja N koneksi idle dan tunggu

Contoh

Contoh berikut menunjukkan beberapa opsi penggunaan dalam utilitas benchmark Redis.

redis-benchmark -h 127.0.0.1 -p 6379 -t set,lpush -n 100000 -q  

SET: 146198.83 requests per second 
LPUSH: 145560.41 requests per second

Redis menerima koneksi klien pada port TCP mendengarkan yang dikonfigurasi dan pada soket Unix, jika diaktifkan. Ketika koneksi klien baru diterima, operasi berikut ini dilakukan -

  • Soket klien ditempatkan dalam status non-pemblokiran karena Redis menggunakan I / O multiplexing dan non-pemblokiran.

  • Opsi TCP_NODELAY disetel untuk memastikan bahwa kami tidak mengalami penundaan dalam koneksi kami.

  • Acara file yang dapat dibaca dibuat sehingga Redis dapat mengumpulkan kueri klien segera setelah data baru tersedia untuk dibaca di soket.

Jumlah Klien Maksimum

Dalam konfigurasi Redis (redis.conf), ada properti bernama maxclients, yang menjelaskan jumlah maksimum klien yang dapat terhubung ke Redis.

Berikut ini adalah sintaks dasar perintah.

config get maxclients  

1) "maxclients" 
2) "10000"

Secara default, properti ini disetel ke 10.000 (bergantung pada jumlah maksimum batas deskriptor file OS), meskipun Anda dapat mengubah properti ini.

Contoh

Dalam contoh berikut, kami telah menetapkan jumlah maksimum klien menjadi 100000, saat memulai server.

redis-server --maxclients 100000

Perintah Klien

Sr Tidak Perintah Deskripsi
1 CLIENT LIST Menampilkan daftar klien yang terhubung ke server Redis
2 CLIENT SETNAME Memberi nama untuk koneksi saat ini
3 CLIENT GETNAME Mengembalikan nama koneksi saat ini seperti yang ditetapkan oleh CLIENT SETNAME
4 CLIENT PAUSE Ini adalah perintah kontrol koneksi yang dapat menangguhkan semua klien Redis selama jangka waktu tertentu (dalam milidetik)
5 CLIENT KILL Perintah ini menutup koneksi klien tertentu.

Redis adalah server TCP dan mendukung protokol permintaan / tanggapan. Di Redis, permintaan diselesaikan dengan langkah-langkah berikut -

  • Klien mengirimkan kueri ke server, dan membaca dari soket, biasanya dengan cara memblokir, untuk respons server.

  • Server memproses perintah dan mengirimkan respons kembali ke klien.

Arti Pipelining

Arti dasar pipelining adalah, klien dapat mengirim banyak permintaan ke server tanpa menunggu balasan sama sekali, dan akhirnya membaca balasan dalam satu langkah.

Contoh

Untuk memeriksa pipelining Redis, cukup mulai instance Redis dan ketik perintah berikut di terminal.

$(echo -en "PING\r\n SET tutorial redis\r\nGET tutorial\r\nINCR 
visitor\r\nINCR visitor\r\nINCR visitor\r\n"; sleep 10) | nc localhost 6379  
+PONG 
+OK 
redis 
:1 
:2 
:3

Dalam contoh di atas, kami akan memeriksa koneksi Redis dengan menggunakan PINGperintah. Kami telah menetapkan string bernamatutorial dengan nilai redis. Nanti, kita mendapatkan nilai kunci itu dan menambah jumlah pengunjung tiga kali. Hasilnya, kita dapat melihat bahwa semua perintah dikirim ke Redis satu kali, dan Redis menyediakan keluaran dari semua perintah dalam satu langkah.

Manfaat Pipelining

Manfaat dari teknik ini adalah kinerja protokol yang meningkat secara drastis. Percepatan yang diperoleh dengan pipelining berkisar dari faktor lima untuk koneksi ke localhost hingga faktor setidaknya seratus melalui koneksi internet yang lebih lambat.

Partisi adalah proses membagi data Anda menjadi beberapa instance Redis, sehingga setiap instance hanya akan berisi subset kunci Anda.

Manfaat Partisi

  • Ini memungkinkan untuk database yang jauh lebih besar, menggunakan jumlah memori banyak komputer. Tanpa mempartisi, Anda dibatasi pada jumlah memori yang dapat didukung oleh satu komputer.

  • Ini memungkinkan untuk menskalakan daya komputasi ke banyak inti dan banyak komputer, dan bandwidth jaringan ke banyak komputer dan adaptor jaringan.

Kekurangan Partisi

  • Operasi yang melibatkan banyak tombol biasanya tidak didukung. Misalnya, Anda tidak dapat melakukan perpotongan antara dua set jika disimpan dalam kunci yang dipetakan ke instance Redis yang berbeda.

  • Transaksi redis yang melibatkan banyak kunci tidak dapat digunakan.

  • Lumbung partisi adalah kuncinya, jadi tidak mungkin untuk memecah kumpulan data dengan satu kunci besar seperti kumpulan terurut yang sangat besar.

  • Saat partisi digunakan, penanganan data menjadi lebih kompleks. Misalnya, Anda harus menangani beberapa file RDB / AOF, dan untuk mendapatkan cadangan data Anda, Anda perlu menggabungkan file persistensi dari beberapa instance dan host.

  • Menambah dan menghapus kapasitas bisa jadi rumit. Misalnya, Redis Cluster mendukung sebagian besar penyeimbangan ulang data yang transparan dengan kemampuan untuk menambah dan menghapus node saat runtime. Namun, sistem lain seperti pemartisian sisi klien dan proxy tidak mendukung fitur ini. Sebuah teknik yang disebutPresharding membantu dalam hal ini.

Jenis Partisi

Ada dua jenis partisi yang tersedia di Redis. Misalkan kita memiliki empat instance Redis, R0, R1, R2, R3 dan banyak kunci yang mewakili pengguna seperti pengguna: 1, pengguna: 2, ... dan seterusnya.

Rentang Partisi

Pemartisian jarak dilakukan dengan memetakan rentang objek ke dalam instance Redis tertentu. Misalkan pada contoh kita, pengguna dari ID 0 hingga ID 10000 akan masuk ke instance R0, sedangkan pengguna dari ID 10001 hingga ID 20000 akan masuk ke instance R1 dan seterusnya.

Partisi Hash

Dalam jenis pemartisian ini, fungsi hash (mis. Fungsi modulus) digunakan untuk mengubah kunci menjadi angka dan kemudian data disimpan dalam instance Redis yang berbeda-beda.

Sebelum Anda mulai menggunakan Redis di program Java, Anda perlu memastikan bahwa Anda memiliki driver Redis Java dan Java yang telah diatur di mesin. Anda dapat memeriksa tutorial Java kami untuk penginstalan Java di komputer Anda.

Instalasi

Sekarang, mari kita lihat cara mengatur driver Java Redis.

  • Anda perlu mengunduh toples dari jalurnya Download jedis.jar. Pastikan untuk mengunduh rilis terbarunya.

  • Anda perlu menyertakan file jedis.jar ke jalur kelas Anda.

Hubungkan ke Redis Server

import redis.clients.jedis.Jedis; 

public class RedisJava { 
   public static void main(String[] args) { 
      //Connecting to Redis server on localhost 
      Jedis jedis = new Jedis("localhost"); 
      System.out.println("Connection to server sucessfully"); 
      //check whether server is running or not 
      System.out.println("Server is running: "+jedis.ping()); 
   } 
}

Sekarang, mari kita kompilasi dan jalankan program di atas untuk menguji koneksi ke server Redis. Anda dapat mengubah jalur Anda sesuai kebutuhan Anda. Kami mengasumsikan versi saat inijedis.jar tersedia di jalur saat ini.

$javac RedisJava.java 
$java RedisJava 
Connection to server sucessfully 
Server is running: PONG

Contoh String Java Redis

import redis.clients.jedis.Jedis; 

public class RedisStringJava { 
   public static void main(String[] args) { 
      //Connecting to Redis server on localhost 
      Jedis jedis = new Jedis("localhost"); 
      System.out.println("Connection to server sucessfully"); 
      //set the data in redis string 
      jedis.set("tutorial-name", "Redis tutorial"); 
      // Get the stored data and print it 
      System.out.println("Stored string in redis:: "+ jedis.get("tutorialname")); 
   } 
}

Sekarang, mari kita kompilasi dan jalankan program di atas.

$javac RedisStringJava.java 
$java RedisStringJava 
Connection to server sucessfully 
Stored string in redis:: Redis tutorial

Contoh Daftar Redis Java

import redis.clients.jedis.Jedis; 

public class RedisListJava { 
   public static void main(String[] args) { 
   
      //Connecting to Redis server on localhost 
      Jedis jedis = new Jedis("localhost"); 
      System.out.println("Connection to server sucessfully"); 
      
      //store data in redis list 
      jedis.lpush("tutorial-list", "Redis"); 
      jedis.lpush("tutorial-list", "Mongodb"); 
      jedis.lpush("tutorial-list", "Mysql"); 
      // Get the stored data and print it 
      List<String> list = jedis.lrange("tutorial-list", 0 ,5); 
      
      for(int i = 0; i<list.size(); i++) { 
         System.out.println("Stored string in redis:: "+list.get(i)); 
      } 
   } 
}

Sekarang, mari kita kompilasi dan jalankan program di atas.

$javac RedisListJava.java 
$java RedisListJava 
Connection to server sucessfully 
Stored string in redis:: Redis 
Stored string in redis:: Mongodb 
Stored string in redis:: Mysql

Contoh Redis Java Keys

import redis.clients.jedis.Jedis; 

public class RedisKeyJava { 
   public static void main(String[] args) { 
   
      //Connecting to Redis server on localhost 
      Jedis jedis = new Jedis("localhost"); 
      System.out.println("Connection to server sucessfully"); 
      //store data in redis list 
      // Get the stored data and print it 
      List<String> list = jedis.keys("*"); 
      
      for(int i = 0; i<list.size(); i++) { 
         System.out.println("List of stored keys:: "+list.get(i)); 
      } 
   } 
}

Sekarang, mari kita kompilasi dan jalankan program di atas.

$javac RedisKeyJava.java 
$java RedisKeyJava 
Connection to server sucessfully 
List of stored keys:: tutorial-name 
List of stored keys:: tutorial-list

Sebelum Anda mulai menggunakan Redis di program PHP Anda, Anda harus memastikan bahwa Anda memiliki driver PHP Redis dan PHP yang telah disiapkan di komputer. Anda dapat memeriksa tutorial PHP untuk instalasi PHP di komputer Anda.

Instalasi

Sekarang, mari kita periksa cara mengatur driver PHP Redis.

Anda perlu mengunduh phpredis dari repositori github https://github.com/nicolasff/phpredis. Setelah Anda mengunduhnya, ekstrak file ke direktori phpredis. Di Ubuntu, instal ekstensi berikut.

cd phpredis 
sudo phpize 
sudo ./configure 
sudo make 
sudo make install

Sekarang, salin dan tempel konten folder "modul" ke direktori ekstensi PHP dan tambahkan baris berikut di php.ini.

extension = redis.so

Sekarang, penginstalan PHP Redis Anda selesai

Hubungkan ke Redis Server

<?php 
   //Connecting to Redis server on localhost 
   $redis = new Redis(); 
   $redis->connect('127.0.0.1', 6379); echo "Connection to server sucessfully"; //check whether server is running or not echo "Server is running: ".$redis->ping(); 
?>

Ketika program dijalankan maka akan menghasilkan hasil sebagai berikut.

Connection to server sucessfully 
Server is running: PONG

Contoh String PHP Redis

<?php 
   //Connecting to Redis server on localhost 
   $redis = new Redis(); $redis->connect('127.0.0.1', 6379); 
   echo "Connection to server sucessfully"; 
   //set the data in redis string 
   $redis->set("tutorial-name", "Redis tutorial"); // Get the stored data and print it echo "Stored string in redis:: " .$redis→get("tutorial-name"); 
?>

Jika program diatas dijalankan maka akan menghasilkan hasil sebagai berikut.

Connection to server sucessfully 
Stored string in redis:: Redis tutorial

Contoh Daftar Redis php

<?php 
   //Connecting to Redis server on localhost 
   $redis = new Redis(); $redis->connect('127.0.0.1', 6379); 
   echo "Connection to server sucessfully"; 
   //store data in redis list 
   $redis->lpush("tutorial-list", "Redis"); $redis->lpush("tutorial-list", "Mongodb"); 
   $redis->lpush("tutorial-list", "Mysql"); // Get the stored data and print it $arList = $redis->lrange("tutorial-list", 0 ,5); echo "Stored string in redis:: "; print_r($arList); 
?>

Jika program diatas dijalankan maka akan menghasilkan hasil sebagai berikut.

Connection to server sucessfully 
Stored string in redis:: 
Redis 
Mongodb 
Mysql

Contoh Redis PHP Keys

<?php 
   //Connecting to Redis server on localhost 
   $redis = new Redis(); $redis->connect('127.0.0.1', 6379); 
   echo "Connection to server sucessfully"; 
   // Get the stored keys and print it 
   $arList = $redis->keys("*"); 
   echo "Stored keys in redis:: " 
   print_r($arList); 
?>

Ketika program dijalankan maka akan menghasilkan hasil sebagai berikut.

Connection to server sucessfully 
Stored string in redis:: 
tutorial-name 
tutorial-list