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