Redis - Hızlı Kılavuz
Redis, açık kaynaklı, gelişmiş bir anahtar-değer deposu ve yüksek performanslı, ölçeklenebilir web uygulamaları oluşturmak için uygun bir çözümdür.
Redis'in onu diğerlerinden ayıran üç ana özelliği vardır.
Redis, diski yalnızca kalıcılık amacıyla kullanarak veritabanını tamamen bellekte tutar.
Redis, birçok anahtar-değer veri deposuyla karşılaştırıldığında nispeten zengin bir veri türü kümesine sahiptir.
Redis, verileri herhangi bir sayıda slave'e kopyalayabilir.
Redis Avantajları
Aşağıda Redis'in bazı avantajları verilmiştir.
Exceptionally fast - Redis çok hızlıdır ve saniyede yaklaşık 110000 SET, saniyede yaklaşık 81000 GET gerçekleştirebilir.
Supports rich data types- Redis, geliştiricilerin liste, küme, sıralı küme ve karmalar gibi zaten bildiği veri türlerinin çoğunu yerel olarak destekler. Bu, hangi sorunun hangi veri türü ile daha iyi ele alınabileceğini bildiğimiz için çeşitli sorunları çözmeyi kolaylaştırır.
Operations are atomic - Tüm Redis işlemleri atomiktir; bu, iki istemcinin aynı anda erişmesi durumunda Redis sunucusunun güncellenmiş değeri almasını sağlar.
Multi-utility tool - Redis, çok amaçlı bir araçtır ve önbelleğe alma, mesajlaşma kuyrukları (Redis yerel olarak Yayınlama / Abone Olmayı destekler), web uygulama oturumları, web gibi uygulamanızdaki kısa ömürlü veriler gibi çeşitli kullanım durumlarında kullanılabilir. sayfa isabet sayıları vb.
Redis ve Diğer Anahtar-Değer Depoları
Redis, değerlerin daha karmaşık veri türlerini içerebildiği ve bu veri türlerinde atomik işlemlerin tanımlandığı anahtar / değer DB'lerinde farklı bir evrim yoludur.
Redis bir bellek içi veritabanıdır ancak disk veritabanında kalıcıdır, dolayısıyla bellekten daha büyük olamayacak veri kümelerinin sınırlandırılmasıyla çok yüksek yazma ve okuma hızının elde edildiği farklı bir değiş tokuşu temsil eder.
Bellek içi veritabanlarının bir başka avantajı, karmaşık veri yapılarının bellek gösteriminin, diskteki aynı veri yapısına kıyasla işlenmesinin çok daha basit olmasıdır. Bu nedenle Redis, çok az dahili karmaşıklıkla çok şey yapabilir.
Bu bölümde, Redis için çevre kurulumu hakkında bilgi edineceksiniz.
Redis'i Ubuntu'ya yükleyin
Redis'i Ubuntu'ya kurmak için terminale gidin ve aşağıdaki komutları yazın -
$sudo apt-get update $sudo apt-get install redis-server
Bu, Redis'i makinenize kuracaktır.
Redis'i başlatın
$redis-server
Redis'in Çalışıp Çalışmadığını Kontrol Edin
$redis-cli
Bu bir redis istemi açacaktır.
redis 127.0.0.1:6379>
Yukarıdaki istemde, 127.0.0.1 makinenizin IP adresidir ve 6379Redis sunucusunun çalıştığı bağlantı noktasıdır. Şimdi aşağıdakileri yazınPING komut.
redis 127.0.0.1:6379> ping
PONG
Bu, Redis'in makinenize başarıyla yüklendiğini gösterir.
Redis Desktop Manager'ı Ubuntu'ya yükleyin
Redis masaüstü yöneticisini Ubuntu'ya kurmak için paketi şuradan indirin: https://redisdesktop.com/download
İndirilen paketi açın ve kurun.
Redis masaüstü yöneticisi, Redis anahtarlarınızı ve verilerinizi yönetmeniz için size UI verecektir.
Redis'te, Redis'in kök dizininde bulunan bir yapılandırma dosyası (redis.conf) vardır. Redis ile tüm Redis yapılandırmalarını alabilir ve ayarlayabilirsinizCONFIG komut.
Sözdizimi
Redis'in temel sözdizimi aşağıdadır CONFIG komut.
redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME
Misal
redis 127.0.0.1:6379> CONFIG GET loglevel
1) "loglevel"
2) "notice"
Tüm yapılandırma ayarlarını almak için CONFIG_SETTING_NAME yerine * kullanın
Misal
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) ""
Yapılandırmayı Düzenle
Yapılandırmayı güncellemek için düzenleyebilirsiniz redis.conf doğrudan dosya veya konfigürasyonları güncelleyebilirsiniz CONFIG set komut.
Sözdizimi
Temel sözdizimi aşağıdadır CONFIG SET komut.
redis 127.0.0.1:6379> CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE
Misal
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, 5 tür veri türünü destekler.
Teller
Redis dizesi bir bayt dizisidir. Redis'teki dizeler ikili güvenlidir, yani herhangi bir özel sonlandırma karakteri tarafından belirlenmeyen bilinen bir uzunluğa sahiptirler. Böylece 512 megabayta kadar olan her şeyi tek bir dizede saklayabilirsiniz.
Misal
redis 127.0.0.1:6379> SET name "tutorialspoint"
OK
redis 127.0.0.1:6379> GET name
"tutorialspoint"
Yukarıdaki örnekte, SET ve GET Redis komutlarıdır, name Redis'te kullanılan anahtardır ve tutorialspoint Redis'de depolanan dize değeridir.
Note - Dize değeri en fazla 512 megabayt uzunluğunda olabilir.
Hashes
Redis hash, anahtar değer çiftlerinden oluşan bir koleksiyondur. Redis Hashes, dize alanları ve dize değerleri arasındaki eşlemlerdir. Dolayısıyla nesneleri temsil etmek için kullanılırlar.
Misal
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"
Yukarıdaki örnekte, karma veri türü, kullanıcının temel bilgilerini içeren kullanıcının nesnesini depolamak için kullanılır. BurayaHMSET, HGETALL Redis için komutlardır. user − 1 Anahtar mı.
Her karma 2 32-1 alan-değer çifti (4 milyardan fazla) saklayabilir .
Listeler
Redis Listeleri, ekleme sırasına göre sıralanmış dizelerden oluşan basit listelerdir. Baştaki veya kuyruktaki bir Redis Listesine öğeler ekleyebilirsiniz.
Misal
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"
Listenin maksimum uzunluğu 2 32 1 elemanlarının (4294967295, liste başına elemanların fazla 4 milyar $) -.
Setleri
Redis Kümeleri, sırasız dizeler koleksiyonudur. Redis'te, O (1) zaman karmaşıklığındaki üyelerin varlığını ekleyebilir, kaldırabilir ve test edebilirsiniz.
Misal
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 - Yukarıdaki örnekte, rabitmq iki kez eklenir, ancak kümenin benzersiz özelliği nedeniyle yalnızca bir kez eklenir.
Bir kümedeki maksimum üye sayısı 2 32 - 1'dir (4294967295, küme başına 4 milyardan fazla üye).
Sıralanmış Kümeler
Redis Sıralanmış Kümeler, yinelenmeyen Dizeler koleksiyonları olan Redis Kümelerine benzer. Aradaki fark, bir Sıralanmış Kümenin her üyesinin, sıralı kümeyi en küçükten en büyük puana kadar almak için kullanılan bir puanla ilişkilendirilmesidir. Üyeler benzersiz olsa da puanlar tekrar edilebilir.
Misal
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"
Redis komutları, Redis sunucusunda bazı işlemleri gerçekleştirmek için kullanılır.
Redis sunucusunda komut çalıştırmak için bir Redis istemcisine ihtiyacınız var. Redis istemcisi, daha önce kurduğumuz Redis paketinde mevcuttur.
Sözdizimi
Redis istemcisinin temel sözdizimi aşağıdadır.
$redis-cli
Misal
Aşağıdaki örnek, Redis istemcisini nasıl başlatabileceğimizi açıklamaktadır.
Redis istemcisini başlatmak için terminali açın ve komutu yazın redis-cli. Bu, yerel sunucunuza bağlanacak ve artık herhangi bir komutu çalıştırabilirsiniz.
$redis-cli
redis 127.0.0.1:6379>
redis 127.0.0.1:6379> PING
PONG
Yukarıdaki örnekte, yerel makinede çalışan Redis sunucusuna bağlanıyoruz ve bir komut çalıştırıyoruz PING, bu, sunucunun çalışıp çalışmadığını kontrol eder.
Uzak Sunucuda Komutları Çalıştırın
Redis uzak sunucusunda komut çalıştırmak için, sunucuya aynı istemci tarafından bağlanmanız gerekir. redis-cli
Sözdizimi
$ redis-cli -h host -p port -a password
Misal
Aşağıdaki örnek, 127.0.0.1 ana bilgisayarı, 6379 numaralı bağlantı noktasında çalışan ve parola mypass'ı olan Redis uzak sunucusuna nasıl bağlanılacağını gösterir.
$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
Redis tuş komutları, Redis'teki anahtarları yönetmek için kullanılır. Redis tuşları komutlarını kullanmak için sözdizimi aşağıdadır.
Sözdizimi
redis 127.0.0.1:6379> COMMAND KEY_NAME
Misal
redis 127.0.0.1:6379> SET tutorialspoint redis
OK
redis 127.0.0.1:6379> DEL tutorialspoint
(integer) 1
Yukarıdaki örnekte, DEL komut iken tutorialspointAnahtar mı. Anahtar silinirse, komutun çıktısı (tamsayı) 1, aksi takdirde (tamsayı) 0 olacaktır.
Redis Keys Komutları
Aşağıdaki tablo tuşlarla ilgili bazı temel komutları listelemektedir.
Sr.No | Komut ve Açıklama |
---|---|
1 | DEL tuşu Bu komut, varsa anahtarı siler. |
2 | DUMP anahtarı Bu komut, belirtilen anahtarda depolanan değerin serileştirilmiş bir sürümünü döndürür. |
3 | EXISTS anahtarı Bu komut, anahtarın var olup olmadığını kontrol eder. |
4 | EXPIRE anahtar saniye Belirtilen süreden sonra anahtarın süresinin dolmasını ayarlar. |
5 | EXPIREAT anahtarı zaman damgası Belirtilen süreden sonra anahtarın süresinin dolmasını ayarlar. Burada zaman Unix zaman damgası biçimindedir. |
6 | PEXPIRE anahtarı milisaniye Anahtarın sona erme süresini milisaniye cinsinden ayarlayın. |
7 | PEXPIREAT anahtarı milisaniye-zaman damgası Milisaniye olarak belirtilen Unix zaman damgasında anahtarın süresinin dolmasını ayarlar. |
8 | ANAHTAR desen Belirtilen modelle eşleşen tüm anahtarları bulur. |
9 | MOVE tuşu db Bir anahtarı başka bir veritabanına taşır. |
10 | PERSIST tuşu Son kullanma tarihini anahtardan kaldırır. |
11 | PTTL anahtarı Milisaniye cinsinden sona erme süresini anahtar cinsinden alır. |
12 | TTL anahtarı Anahtarların sona ermesinde kalan süreyi alır. |
13 | RASGELE ANAHTARI Redis'ten rastgele bir anahtar döndürür. |
14 | YENİ ANAHTAR YENİ ANAHTAR Anahtar adını değiştirir. |
15 | RENAMENX anahtarı newkey Yeni bir anahtar yoksa anahtarı yeniden adlandırır. |
16 | TYPE anahtarı Anahtarda saklanan değerin veri türünü döndürür. |
Redis dizeleri komutları, Redis'te dize değerlerini yönetmek için kullanılır. Redis dizesi komutlarını kullanmak için sözdizimi aşağıdadır.
Sözdizimi
redis 127.0.0.1:6379> COMMAND KEY_NAME
Misal
redis 127.0.0.1:6379> SET tutorialspoint redis
OK
redis 127.0.0.1:6379> GET tutorialspoint
"redis"
Yukarıdaki örnekte, SET ve GET komutlar iken tutorialspoint Anahtar mı.
Redis Strings Komutları
Aşağıdaki tablo, Redis'teki dizeleri yönetmek için bazı temel komutları listeler.
Sr.No | Komut ve Açıklama |
---|---|
1 | Anahtar değerini ayarla Bu komut, belirtilen anahtardaki değeri ayarlar. |
2 | Anahtarı al Bir anahtarın değerini alır. |
3 | GETRANGE tuşu başlangıç sonu Bir anahtarda depolanan dizenin bir alt dizesini alır. |
4 | GETSET anahtar değeri Bir anahtarın dize değerini ayarlar ve eski değerini döndürür. |
5 | GETBIT tuş ofseti Anahtarda saklanan dizi değerindeki ofsetteki bit değerini döndürür. |
6 | MGET key1 [key2 ..] Verilen tüm anahtarların değerlerini alır |
7 | SETBIT tuş ofset değeri Anahtarda saklanan dizi değerindeki ofsetteki biti ayarlar veya temizler |
8 | SETEX anahtarı saniye değeri Değeri bir anahtarın sona ermesiyle ayarlar |
9 | SETNX anahtar değeri Bir anahtarın değerini yalnızca anahtar yoksa ayarlar |
10 | SETRANGE tuş ofset değeri Belirtilen uzaklıktan başlayarak anahtardaki bir dizenin parçasının üzerine yazar |
11 | STRLEN tuşu Bir anahtarda depolanan değerin uzunluğunu alır |
12 | MSET anahtar değeri [anahtar değeri ...] Birden çok anahtarı birden çok değere ayarlar |
13 | MSETNX anahtar değeri [anahtar değeri ...] Birden çok anahtarı birden çok değere ayarlar, yalnızca anahtarlardan hiçbiri yoksa |
14 | PSETEX anahtarı milisaniye değeri Bir anahtarın milisaniye cinsinden değerini ve son kullanma tarihini ayarlar |
15 | INCR anahtarı Bir anahtarın tamsayı değerini birer birer artırır |
16 | INCRBY anahtar artışı Bir anahtarın tam sayı değerini verilen miktar kadar artırır |
17 | INCRBYFLOAT anahtar artışı Bir anahtarın kayan değerini verilen miktarda artırır |
18 | DECR anahtarı Bir anahtarın tamsayı değerini birer birer azaltır |
19 | DECRBY tuş azaltma Bir anahtarın tamsayı değerini verilen sayı kadar azaltır |
20 | Anahtar değeri EKLE Bir anahtara bir değer ekler |
Redis Hashes, dize alanları ve dize değerleri arasındaki eşlemlerdir. Dolayısıyla, nesneleri temsil etmek için mükemmel veri türüdür.
Redis'te her karma, 4 milyardan fazla alan değeri çifti depolayabilir.
Misal
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"
Yukarıdaki örnekte, Redis öğreticilerinin ayrıntılarını (ad, açıklama, beğeniler, ziyaretçiler) 'öğretici nokta' adlı karmada ayarladık.
Redis Hash Komutları
Aşağıdaki tablo, hash ile ilgili bazı temel komutları listelemektedir.
Sr.No | Komut ve Açıklama |
---|---|
1 | HDEL anahtar alan2 [alan2] Bir veya daha fazla karma alanı siler. |
2 | HEXISTS anahtar alanı Bir karma alanın var olup olmadığını belirler. |
3 | HGET anahtar alanı Belirtilen anahtarda depolanan bir karma alanının değerini alır. |
4 | HGETALL tuşu Belirtilen anahtarda bir karmada depolanan tüm alanları ve değerleri alır |
5 | HINCRBY anahtar alanı artışı Bir karma alanının tamsayı değerini verilen sayı kadar artırır |
6 | HINCRBYFLOAT anahtar alanı artışı Bir karma alanın kayan değerini verilen miktar kadar artırır |
7 | HKEYS anahtarı Bir hash içindeki tüm alanları alır |
8 | HLEN anahtarı Bir karmadaki alanların sayısını alır |
9 | HMGET anahtar field1 [field2] Verilen tüm hash alanlarının değerlerini alır |
10 | HMSET anahtarı alan1 değer1 [alan2 değer2] Birden çok karma alanını birden çok değere ayarlar |
11 | HSET anahtar alanı değeri Bir karma alanın dize değerini ayarlar |
12 | HSETNX anahtar alanı değeri Bir hash alanının değerini, yalnızca alan yoksa ayarlar |
13 | HVALS anahtarı Bir hash içindeki tüm değerleri alır |
14 | HSCAN tuş imleci [MATCH kalıbı] [COUNT sayım] Karma alanları ve ilişkili değerleri artımlı olarak yineler |
Redis Listeleri, ekleme sırasına göre sıralanmış dizelerden oluşan basit listelerdir. Redis listelerine listenin başına veya sonuna öğeler ekleyebilirsiniz.
Bir liste maksimum uzunluğu 2 32 1 elemanlarının (4294967295, liste başına elemanların fazla 4 milyar $) -.
Misal
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"
Yukarıdaki örnekte, Redis listesine komutla 'öğreticiler' adlı üç değer eklenmiştir. LPUSH.
Redis Komutları Listeler
Aşağıdaki tablo, listelerle ilgili bazı temel komutları listeler.
Sr.No | Komut ve Açıklama |
---|---|
1 | BLPOP key1 [key2] zaman aşımı Listedeki ilk öğeyi kaldırır ve alır veya mevcut olana kadar engeller |
2 | BRPOP key1 [key2] zaman aşımı Listedeki son öğeyi kaldırır ve alır veya bir tane mevcut olana kadar engeller |
3 | BRPOPLPUSH kaynak hedef zaman aşımı Listeden bir değer çıkarır, onu başka bir listeye iter ve döndürür; veya biri müsait olana kadar engeller |
4 | LINDEX anahtar dizini Bir listeden dizinine göre bir eleman alır |
5 | LINSERT tuşu ÖNCE | Pivot değerinden SONRA Listedeki başka bir öğenin önüne veya arkasına bir öğe ekler |
6 | LLEN anahtarı Bir listenin uzunluğunu alır |
7 | LPOP anahtarı Listedeki ilk öğeyi kaldırır ve alır |
8 | LPUSH anahtar değer1 [değer2] Listenin başına bir veya daha fazla değer ekler |
9 | LPUSHX anahtar değeri Listenin başına bir değer ekler, yalnızca liste varsa |
10 | LRANGE tuşu start stop Bir listeden bir dizi öğe alır |
11 | LREM anahtar sayısı değeri Bir listeden öğeleri kaldırır |
12 | LSET anahtar dizini değeri Bir listedeki bir öğenin değerini dizinine göre ayarlar |
13 | LTRIM tuşu başlangıç durdurma Listeyi belirtilen aralıkta kırpar |
14 | RPOP anahtarı Listedeki son öğeyi kaldırır ve alır |
15 | RPOPLPUSH kaynak hedefi Listedeki son öğeyi kaldırır, başka bir listeye ekler ve döndürür |
16 | RPUSH anahtar değeri1 [değer2] Bir listeye bir veya daha fazla değer ekler |
17 | RPUSHX anahtar değeri Listeye bir değer ekler, yalnızca liste varsa |
Redis Kümeleri, benzersiz dizelerin sıralanmamış bir koleksiyonudur. Benzersiz araç kümeleri, bir anahtardaki verilerin tekrarına izin vermez.
Redis setinde ekle, kaldır ve O (1) 'deki üyelerin varlığını test et (Setin içerdiği elemanların sayısına bakılmaksızın sabit zaman). Listenin uzunluğu en fazla 2 32 1 elemanlarının (4294967295, set başına elemanların fazla 4 milyar $) -.
Misal
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"
Yukarıdaki örnekte, komut tarafından 'öğreticiler' adlı Redis kümesine üç değer eklenmiştir. SADD.
Redis Komutları Ayarlıyor
Aşağıdaki tablo, setlerle ilgili bazı temel komutları listeler.
Sr.No | Komut ve Açıklama |
---|---|
1 | SADD anahtar üye1 [üye2] Bir sete bir veya daha fazla üye ekler |
2 | SCARD tuşu Bir kümedeki üye sayısını alır |
3 | TMSF anahtar1 [anahtar2] Birden çok seti çıkarır |
4 | SDIFFSTORE hedef anahtar1 [anahtar2] Birden çok seti çıkarır ve elde edilen seti bir anahtarda depolar |
5 | SINTER anahtar1 [anahtar2] Birden çok kümeyi kesişir |
6 | SINTERSTORE hedef anahtar1 [anahtar2] Birden çok kümeyi keser ve elde edilen kümeyi bir anahtarda depolar |
7 | SISMEMBER anahtar üyesi Belirli bir değerin bir kümenin üyesi olup olmadığını belirler |
8 | SMEMBERS anahtarı Bir kümedeki tüm üyeleri alır |
9 | SMOVE kaynak hedef üyesi Bir üyeyi bir gruptan diğerine taşır |
10 | SPOP anahtarı Bir kümeden rastgele bir üyeyi kaldırır ve döndürür |
11 | SRANDMEMBER anahtarı [sayı] Bir kümeden bir veya birden çok rastgele üye alır |
12 | SREM anahtar üye1 [üye2] Bir gruptan bir veya daha fazla üyeyi kaldırır |
13 | SUNION key1 [key2] Birden çok set ekler |
14 | SUNIONSTORE hedef anahtar1 [anahtar2] Birden çok set ekler ve elde edilen seti bir anahtarda saklar |
15 | SSCAN anahtar imleci [MATCH kalıbı] [COUNT sayım] Küme öğelerini artımlı olarak yineler |
Redis Sıralanmış Kümeler, bir kümede depolanan değerlerin benzersiz özelliği ile Redis Kümelerine benzer. Aradaki fark, bir Sıralanmış Kümenin her üyesinin, sıralı kümeyi en küçükten en büyük puana kadar almak için kullanılan bir puanla ilişkilendirilmesidir.
Redis sıralanmış kümede, ekleme, kaldırma ve O (1) 'deki üyelerin varlığını test edin (kümenin içinde bulunan öğelerin sayısına bakılmaksızın sabit süre). Bir liste maksimum uzunluğu 2 32 1 elemanlarının (4294967295, set başına elemanların fazla 4 milyar $) -.
Misal
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"
Yukarıdaki örnekte, komut tarafından 'öğreticiler' olarak adlandırılan Redis sıralı kümesine puanıyla birlikte üç değer eklenmiştir. ZADD.
Redis Sıralanmış Kümeler Komutları
Aşağıdaki tablo, sıralanmış kümelerle ilgili bazı temel komutları listeler.
Sr.No | Komut ve Açıklama |
---|---|
1 | ZADD anahtar puanı1 üye1 [puan2 üye2] Sıralanmış bir kümeye bir veya daha fazla üye ekler veya zaten varsa puanını günceller |
2 | ZCARD anahtarı Sıralanmış bir kümedeki üye sayısını alır |
3 | Maksimum ZCOUNT anahtar Verilen değerler dahilindeki puanlarla sıralı bir kümedeki üyeleri sayar |
4 | ZINCRBY anahtar artış üyesi Sıralanmış bir kümedeki bir üyenin puanını artırır |
5 | ZINTERSTORE hedef sayısal tuşlar anahtar [anahtar ...] Birden çok sıralı kümeyi kesiştirir ve ortaya çıkan sıralı kümeyi yeni bir anahtarda depolar |
6 | ZLEXCOUNT anahtar minimum maksimum Belirli bir sözlük aralığı arasında sıralanmış bir kümedeki üye sayısını sayar |
7 | ZRANGE tuşu başlangıç durdurma [WITHSCORES] Dizine göre sıralanmış bir grupta bir dizi üye verir |
8 | ZRANGEBYLEX anahtar min maks. [LIMIT fark sayısı] Sözlük aralığına göre sıralanmış bir küme içinde bir üye aralığı verir |
9 | ZRANGEBYSCORE anahtar min maks. [WITHSCORES] [LIMIT] Puana göre sıralanmış bir grupta bir dizi üye döndürür |
10 | ZRANK anahtar üyesi Sıralanmış bir kümedeki bir üyenin dizinini belirler |
11 | ZREM anahtar üyesi [üye ...] Sıralanmış bir kümeden bir veya daha fazla üyeyi kaldırır |
12 | ZREMRANGEBYLEX anahtar min maks. Verilen sözlük aralığı arasında sıralanmış bir kümedeki tüm üyeleri kaldırır |
13 | ZREMRANGEBYRANK tuşu başlatma durdurma Verilen dizinler içinde sıralanmış bir kümedeki tüm üyeleri kaldırır |
14 | ZREMRANGEBYSCORE anahtar min maks. Verilen puanlar dahilinde sıralanmış bir kümedeki tüm üyeleri kaldırır |
15 | ZREVRANGE tuşu başlatma durdurma [WITHSCORES] Dizine göre sıralanmış bir gruptaki bir üye aralığını, en yüksekten en düşüğe sıralanmış bir şekilde verir |
16 | ZREVRANGEBYSCORE anahtar maks. Min. [WITHSCORES] Puanları yüksekten düşüğe sıralanan bir dizi üyeyi puana göre sıralı bir küme halinde verir |
17 | ZREVRANK anahtar üyesi Sıralanmış bir kümedeki bir üyenin dizinini, yüksekten düşüğe doğru sıralanmış puanlarla belirler |
18 | ZSCORE anahtar üyesi Sıralanmış bir kümede verilen üye ile ilişkili puanı alır |
19 | ZUNIONSTORE hedef sayısal tuşlar anahtar [anahtar ...] Birden çok sıralı küme ekler ve ortaya çıkan sıralı kümeyi yeni bir anahtarda depolar |
20 | ZSCAN anahtar imleci [MATCH kalıbı] [COUNT sayım] Sıralanmış kümeler öğelerini ve ilişkili puanları artımlı olarak yineler |
Redis HyperLogLog, yalnızca sabit ve az miktarda bellek kullanarak bir kümedeki benzersiz öğelerin sayısının yaklaşıklığını sağlamak için rasgele seçim kullanan bir algoritmadır.
HyperLogLog,% 0,81'lik bir standart hata ile anahtar başına yaklaşık 12 kbayt civarında çok küçük bir bellek miktarı kullanıldığında bile bir kümenin kardinalitesine çok iyi bir yaklaşım sağlar. 2 64 maddeye yaklaşmadığınız sürece sayabileceğiniz eşya sayısında herhangi bir sınırlama yoktur .
Misal
Aşağıdaki örnek, Redis HyperLogLog'un nasıl çalıştığını açıklamaktadır.
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 HyperLogLog Komutları
Aşağıdaki tablo Redis HyperLogLog ile ilgili bazı temel komutları listelemektedir.
Sr.No | Komut ve Açıklama |
---|---|
1 | PFADD anahtar öğesi [öğe ...] Belirtilen öğeleri belirtilen HyperLogLog'a ekler. |
2 | PFCOUNT anahtar [anahtar ...] Anahtar (lar) da HyperLogLog tarafından gözlemlenen kümelerin yaklaşık kardinalitesini döndürür. |
3 | PFMERGE destkey sourcekey [sourcekey ...] N farklı HyperLogLog'u tek bir tanede birleştirir. |
Redis Pub / Sub, alıcılar (aboneler) alırken göndericilerin (redis terminolojisinde yayıncılar olarak adlandırılan) mesajları gönderdiği mesajlaşma sistemini uygular. Mesajların aktarıldığı bağlantı denirchannel.
Redis'te, bir müşteri herhangi bir sayıda kanala abone olabilir.
Misal
Aşağıdaki örnek, yayınlama abonesi konseptinin nasıl çalıştığını açıklamaktadır. Aşağıdaki örnekte, bir müşteri 'redisChat' adlı bir kanala abone olmaktadır.
redis 127.0.0.1:6379> SUBSCRIBE redisChat
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "redisChat"
3) (integer) 1
Şimdi, iki müşteri 'redisChat' adlı aynı kanalda mesajları yayınlıyor ve yukarıdaki abone olan müşteri mesajları alıyor.
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"
Redis PubSub Komutları
Aşağıdaki tablo Redis Pub / Sub ile ilgili bazı temel komutları listelemektedir.
Sr.No | Komut ve Açıklama |
---|---|
1 | PSUBSCRIBE kalıbı [desen ...] Verilen modellerle eşleşen kanallara abone olur. |
2 | PUBSUB alt komutu [bağımsız değişken [bağımsız değişken ...]] Pub / Sub sisteminin durumunu söyler. Örneğin, sunucuda hangi istemciler aktiftir. |
3 | PUBLISH kanal mesajı Bir kanala mesaj gönderir. |
4 | PUNSUBSCRIBE [kalıp [kalıp ...]] Verilen modellerle eşleşen kanallara gönderilen mesajları dinlemeyi durdurur. |
5 | ABONE OL kanal [kanal ...] Verilen kanallarda yayınlanan mesajları dinler. |
6 | ABONELİKTEN KALDIR [kanal [kanal ...]] Verilen kanallara gönderilen mesajları dinlemeyi durdurur. |
Redis işlemleri, bir grup komutun tek adımda yürütülmesine izin verir. İşlemlerin iki özelliği aşağıdadır.
Bir işlemdeki tüm komutlar, tek bir izole işlem olarak sırayla yürütülür. Redis işleminin yürütülmesinin ortasında başka bir müşteri tarafından yayınlanan bir talebin sunulması mümkün değildir.
Redis işlemi de atomiktir. Atomik, tüm komutların işlenmediği veya hiçbirinin işlenmediği anlamına gelir.
Örneklem
Redis işlemi komutla başlatılır MULTI ve sonra işlemde çalıştırılması gereken komutların bir listesini iletmeniz gerekir, ardından işlemin tamamı tarafından gerçekleştirilir. EXEC komut.
redis 127.0.0.1:6379> MULTI
OK
List of commands here
redis 127.0.0.1:6379> EXEC
Misal
Aşağıdaki örnek, Redis işleminin nasıl başlatılabileceğini ve yürütülebileceğini açıklamaktadır.
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
Redis İşlem Komutları
Aşağıdaki tablo, Redis işlemleriyle ilgili bazı temel komutları göstermektedir.
Sr.No | Komut ve Açıklama |
---|---|
1 | KART MULTI'dan sonra verilen tüm komutları atar |
2 | EXEC MULTI'dan sonra verilen tüm komutları yürütür |
3 | ÇOK Bir işlem bloğunun başlangıcını işaretler |
4 | İZLE İzlenen tüm anahtarları unutur |
5 | SAAT tuşu [anahtar ...] MULTI / EXEC bloğunun yürütülmesini belirlemek için verilen anahtarları izler |
Redis komut dosyası, Lua yorumlayıcısını kullanarak komut dosyalarını değerlendirmek için kullanılır. 2.6.0 sürümünden başlayarak Redis'te yerleşiktir. Komut dosyası oluşturmak için kullanılan komutEVAL komut.
Sözdizimi
Temel sözdizimi aşağıdadır EVAL komut.
redis 127.0.0.1:6379> EVAL script numkeys key [key ...] arg [arg ...]
Example
Following example explains how Redis scripting works.
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"
Redis Scripting Commands
Following table lists some basic commands related to Redis Scripting.
Sr.No | Command & Description |
---|---|
1 | EVAL script numkeys key [key ...] arg [arg ...] Executes a Lua script. |
2 | EVALSHA sha1 numkeys key [key ...] arg [arg ...] Executes a Lua script. |
3 | SCRIPT EXISTS script [script ...] Checks the existence of scripts in the script cache. |
4 | SCRIPT FLUSH Removes all the scripts from the script cache. |
5 | SCRIPT KILL Kills the script currently in execution. |
6 | SCRIPT LOAD script Loads the specified Lua script into the script cache. |
Redis connection commands are basically used to manage client connections with Redis server.
Example
Following example explains how a client authenticates itself to Redis server and checks whether the server is running or not.
redis 127.0.0.1:6379> AUTH "password"
OK
redis 127.0.0.1:6379> PING
PONG
Redis Connection Commands
Following table lists some basic commands related to Redis connections.
Sr.No | Command & Description |
---|---|
1 | AUTH password Authenticates to the server with the given password |
2 | ECHO message Prints the given string |
3 | PING Checks whether the server is running or not |
4 | QUIT Closes the current connection |
5 | SELECT index Changes the selected database for the current connection |
Redis server commands are basically used to manage Redis server.
Example
Following example explains how we can get all statistics and information about the 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
Redis Server Commands
Following table lists some basic commands related to Redis server.
Sr.No | Command & Description |
---|---|
1 | BGREWRITEAOF Asynchronously rewrites the append-only file |
2 | BGSAVE Asynchronously saves the dataset to the disk |
3 | CLIENT KILL [ip:port] [ID client-id] Kills the connection of a client |
4 | CLIENT LIST Gets the list of client connections to the server |
5 | CLIENT GETNAME Gets the name of the current connection |
6 | CLIENT PAUSE timeout Stops processing commands from the clients for a specified time |
7 | CLIENT SETNAME connection-name Sets the current connection name |
8 | CLUSTER SLOTS Gets an array of Cluster slot to node mappings |
9 | COMMAND Gets an array of Redis command details |
10 | COMMAND COUNT Gets total number of Redis commands |
11 | COMMAND GETKEYS Extracts the keys given a full Redis command |
12 | BGSAVE Asynchronously saves the dataset to the disk |
13 | COMMAND INFO command-name [command-name ...] Gets an array of specific Redis command details |
14 | CONFIG GET parameter Gets the value of a configuration parameter |
15 | CONFIG REWRITE Rewrites the configuration file with the in-memory configuration |
16 | CONFIG SET parameter value Sets a configuration parameter to the given value |
17 | CONFIG RESETSTAT Resets the stats returned by INFO |
18 | DBSIZE Returns the number of keys in the selected database |
19 | DEBUG OBJECT key Gets debugging information about a key |
20 | DEBUG SEGFAULT Makes the server crash |
21 | FLUSHALL Removes all the keys from all databases |
22 | FLUSHDB Removes all the keys from the current database |
23 | INFO [section] Gets information and statistics about the server |
24 | LASTSAVE Gets the UNIX time stamp of the last successful save to the disk |
25 | MONITOR Listens for all the requests received by the server in real time |
26 | ROLE Returns the role of the instance in the context of replication |
27 | SAVE Synchronously saves the dataset to the disk |
28 | SHUTDOWN [NOSAVE] [SAVE] Synchronously saves the dataset to the disk and then shuts down the server |
29 | SLAVEOF host port Makes the server a slave of another instance, or promotes it as a master |
30 | SLOWLOG subcommand [argument] Manages the Redis slow queries log |
31 | SYNC Command used for replication |
32 | TIME Returns the current server time |
Redis SAVE command is used to create a backup of the current Redis database.
Syntax
Following is the basic syntax of redis SAVE command.
127.0.0.1:6379> SAVE
Example
Following example creates a backup of the current database.
127.0.0.1:6379> SAVE
OK
This command will create a dump.rdb file in your Redis directory.
Restore Redis Data
To restore Redis data, move Redis backup file (dump.rdb) into your Redis directory and start the server. To get your Redis directory, use CONFIG command of Redis as shown below.
127.0.0.1:6379> CONFIG get dir
1) "dir"
2) "/user/tutorialspoint/redis-2.8.13/src"
In the output of the above command /user/tutorialspoint/redis-2.8.13/src is the directory, where Redis server is installed.
Bgsave
To create Redis backup, an alternate command BGSAVE is also available. This command will start the backup process and run this in the background.
Example
127.0.0.1:6379> BGSAVE
Background saving started
Redis database can be secured, such that any client making a connection needs to authenticate before executing a command. To secure Redis, you need to set the password in the config file.
Example
Following example shows the steps to secure your Redis instance.
127.0.0.1:6379> CONFIG get requirepass
1) "requirepass"
2) ""
By default, this property is blank, which means no password is set for this instance. You can change this property by executing the following command.
127.0.0.1:6379> CONFIG set requirepass "tutorialspoint"
OK
127.0.0.1:6379> CONFIG get requirepass
1) "requirepass"
2) "tutorialspoint"
After setting the password, if any client runs the command without authentication, then (error) NOAUTH Authentication required. error will return. Hence, the client needs to use AUTH command to authenticate himself.
Syntax
Following is the basic syntax of AUTH command.
127.0.0.1:6379> AUTH password
Example
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"
Redis benchmark is the utility to check the performance of Redis by running n commands simultaneously.
Syntax
Following is the basic syntax of Redis benchmark.
redis-benchmark [option] [option value]
Example
Following example checks Redis by calling 100000 commands.
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
Following is a list of available options in Redis benchmark.
Sr.No | Option | Description | Default Value |
---|---|---|---|
1 | -h | Specifies server host name | 127.0.0.1 |
2 | -p | Specifies server port | 6379 |
3 | -s | Specifies server socket | |
4 | -c | Specifies the number of parallel connections | 50 |
5 | -n | Specifies the total number of requests | 10000 |
6 | -d | Specifies data size of SET/GET value in bytes | 2 |
7 | -k | 1=keep alive, 0=reconnect | 1 |
8 | -r | Use random keys for SET/GET/INCR, random values for SADD | |
9 | -p | Pipeline <numreq> requests | 1 |
10 | -h | Specifies server host name | |
11 | -q | Forces Quiet to Redis. Just shows query/sec values | |
12 | --csv | Output in CSV format | |
13 | -l | Generates loop, Run the tests forever | |
14 | -t | Only runs the comma-separated list of tests | |
15 | -I | Idle mode. Just opens N idle connections and wait |
Example
Following example shows the multiple usage options in Redis benchmark utility.
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 accepts clients’ connections on the configured listening TCP port and on the Unix socket, if enabled. When a new client connection is accepted, the following operations are performed −
The client socket is put in non-blocking state since Redis uses multiplexing and non-blocking I/O.
The TCP_NODELAY option is set in order to ensure that we don't have delays in our connection.
A readable file event is created so that Redis is able to collect the client queries as soon as new data is available to be read on the socket.
Maximum Number of Clients
In Redis config (redis.conf), there is a property called maxclients, which describes the maximum number of clients that can connect to Redis.
Following is the basic syntax of command.
config get maxclients
1) "maxclients"
2) "10000"
By default, this property is set to 10000 (depending upon the maximum number of file descriptors limit of OS), although you can change this property.
Example
In the following example, we have set the maximum number of clients to 100000, while starting the server.
redis-server --maxclients 100000
Client Commands
Sr.No | Command | Description |
---|---|---|
1 | CLIENT LIST | Returns the list of clients connected to Redis server |
2 | CLIENT SETNAME | Assigns a name to the current connection |
3 | CLIENT GETNAME | Returns the name of the current connection as set by CLIENT SETNAME |
4 | CLIENT PAUSE | This is a connections control command able to suspend all the Redis clients for the specified amount of time (in milliseconds) |
5 | CLIENT KILL | This command closes a given client connection. |
Redis is a TCP server and supports request/response protocol. In Redis, a request is accomplished with the following steps −
The client sends a query to the server, and reads from the socket, usually in a blocking way, for the server response.
The server processes the command and sends the response back to the client.
Meaning of Pipelining
The basic meaning of pipelining is, the client can send multiple requests to the server without waiting for the replies at all, and finally reads the replies in a single step.
Misal
Redis ardışık düzenini kontrol etmek için Redis örneğini başlatmanız ve terminale aşağıdaki komutu yazmanız yeterlidir.
$(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
Yukarıdaki örnekte, Redis bağlantısını kullanarak kontrol edeceğiz PINGkomut. Adlı bir dizge belirlediktutorial değerli redis. Daha sonra bu anahtarların değerini alır ve ziyaretçi sayısını üç kez artırırız. Sonuçta, tüm komutların bir kez Redis'e gönderildiğini ve Redis'in tek bir adımda tüm komutların çıktısını sağladığını görebiliriz.
Ardışık Düzenlemenin Yararları
Bu tekniğin yararı, büyük ölçüde geliştirilmiş bir protokol performansıdır. Ardışık düzen ile kazanılan hız artışı, yerel ana makineye bağlantılar için beş faktörden, daha yavaş internet bağlantılarında en az yüz faktöre kadar değişmektedir.
Bölümleme, verilerinizi birden çok Redis örneğine bölme işlemidir, böylece her örnek yalnızca anahtarlarınızın bir alt kümesini içerecektir.
Bölümlemenin Yararları
Birçok bilgisayarın bellek toplamını kullanarak çok daha büyük veritabanlarına izin verir. Bölümlere ayırmadan, tek bir bilgisayarın destekleyebileceği bellek miktarıyla sınırlandırılırsınız.
Hesaplama gücünü birden çok çekirdeğe ve birden çok bilgisayara ve ağ bant genişliğini birden çok bilgisayara ve ağ bağdaştırıcısına ölçeklemeye olanak tanır.
Bölümlemenin Dezavantajları
Birden çok anahtarı içeren işlemler genellikle desteklenmez. Örneğin, farklı Redis örnekleriyle eşlenen anahtarlarda depolanmışlarsa, iki küme arasında kesişim gerçekleştiremezsiniz.
Birden çok anahtarı içeren Redis işlemleri kullanılamaz.
Bölümleme granuliary anahtardır, bu nedenle bir veri kümesini tek bir dev anahtarla çok büyük sıralanmış bir küme gibi parçalamak mümkün değildir.
Bölümleme kullanıldığında, veri işleme daha karmaşıktır. Örneğin, birden çok RDB / AOF dosyasını işlemeniz ve verilerinizin bir yedeğini almak için, birden çok örnek ve ana bilgisayardan kalıcılık dosyalarını toplamanız gerekir.
Kapasitenin eklenmesi ve kaldırılması karmaşık olabilir. Örneğin, Redis Kümesi, çalışma zamanında düğüm ekleme ve kaldırma becerisiyle çoğunlukla şeffaf veri dengelemesini destekler. Ancak, istemci tarafı bölümleme ve proxy'ler gibi diğer sistemler bu özelliği desteklemez. Denen bir teknikPresharding bu konuda yardımcı olur.
Bölümleme Türleri
Redis'te iki tür bölümleme vardır. Dört Redis örneğimiz olduğunu varsayalım, R0, R1, R2, R3 ve user: 1, user: 2, ... gibi kullanıcıları temsil eden birçok anahtarımız var.
Aralık Bölümleme
Aralık bölümleme, nesne aralıklarının belirli Redis örnekleriyle eşleştirilmesiyle gerçekleştirilir. Örneğimizde, ID 0'dan ID 10000'e kadar olan kullanıcıların R0 örneğine gideceğini, ID 10001'den ID 20000'e kadar olan kullanıcıların ise R1 örneğine gideceğini varsayalım.
Hash Bölümleme
Bu tür bölümlemede, anahtarı bir sayıya dönüştürmek için bir karma işlevi (örn. Modül işlevi) kullanılır ve ardından veriler farklı farklı Redis örneklerinde depolanır.
Java programlarınızda Redis'i kullanmaya başlamadan önce, makinede Redis Java sürücüsünün ve Java'nın kurulu olduğundan emin olmanız gerekir. Makinenize Java kurulumu için Java öğreticimize bakabilirsiniz.
Kurulum
Şimdi Redis Java sürücüsünü nasıl kuracağımızı görelim.
Kavanozu yoldan indirmeniz gerekiyor Download jedis.jar. En son sürümünü indirdiğinizden emin olun.
Eklemeniz gerekir jedis.jar sınıf yolunuza.
Redis Sunucusuna bağlanın
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());
}
}
Şimdi, Redis sunucusuna olan bağlantıyı test etmek için yukarıdaki programı derleyip çalıştıralım. Yolunuzu ihtiyacınıza göre değiştirebilirsiniz. Şu anki sürümünü varsayıyoruzjedis.jar mevcut yolda mevcuttur.
$javac RedisJava.java
$java RedisJava
Connection to server sucessfully
Server is running: PONG
Redis Java Dize Örneği
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"));
}
}
Şimdi yukarıdaki programı derleyip çalıştıralım.
$javac RedisStringJava.java
$java RedisStringJava
Connection to server sucessfully
Stored string in redis:: Redis tutorial
Redis Java Listesi Örneği
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));
}
}
}
Şimdi yukarıdaki programı derleyip çalıştıralım.
$javac RedisListJava.java
$java RedisListJava
Connection to server sucessfully
Stored string in redis:: Redis
Stored string in redis:: Mongodb
Stored string in redis:: Mysql
Redis Java Anahtarları Örneği
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));
}
}
}
Şimdi yukarıdaki programı derleyip çalıştıralım.
$javac RedisKeyJava.java
$java RedisKeyJava
Connection to server sucessfully
List of stored keys:: tutorial-name
List of stored keys:: tutorial-list
PHP programlarınızda Redis'i kullanmaya başlamadan önce, makinede Redis PHP sürücüsünün ve PHP'nin kurulu olduğundan emin olmanız gerekir. Makinenize PHP kurulumu için PHP öğreticisini kontrol edebilirsiniz.
Kurulum
Şimdi Redis PHP sürücüsünü nasıl kuracağımızı kontrol edelim.
Phpredis'i github deposundan indirmeniz gerekiyor https://github.com/nicolasff/phpredis. İndirdikten sonra dosyaları phpredis dizinine çıkartın. Ubuntu'da aşağıdaki uzantıyı yükleyin.
cd phpredis
sudo phpize
sudo ./configure
sudo make
sudo make install
Şimdi, "modüller" klasörünün içeriğini kopyalayıp PHP uzantı dizinine yapıştırın ve aşağıdaki satırları ekleyin php.ini.
extension = redis.so
Artık Redis PHP kurulumunuz tamamlandı
Redis Sunucusuna bağlanın
<?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();
?>
Program çalıştırıldığında aşağıdaki sonucu verecektir.
Connection to server sucessfully
Server is running: PONG
Redis PHP Dizesi Örneği
<?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");
?>
Yukarıdaki program yürütüldüğünde, aşağıdaki sonucu verecektir.
Connection to server sucessfully
Stored string in redis:: Redis tutorial
Redis php Listesi Örneği
<?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);
?>
Yukarıdaki program yürütüldüğünde, aşağıdaki sonucu verecektir.
Connection to server sucessfully
Stored string in redis::
Redis
Mongodb
Mysql
Redis PHP Anahtarları Örneği
<?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);
?>
Program çalıştırıldığında aşağıdaki sonucu verecektir.
Connection to server sucessfully
Stored string in redis::
tutorial-name
tutorial-list