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