Redis - szybki przewodnik

Redis to zaawansowany magazyn kluczy i wartości typu open source, który jest dobrym rozwiązaniem do tworzenia wydajnych, skalowalnych aplikacji internetowych.

Redis ma trzy główne cechy, które go wyróżniają.

  • Redis przechowuje swoją bazę danych w całości w pamięci, używając dysku tylko do trwałości.

  • Redis ma stosunkowo bogaty zestaw typów danych w porównaniu z wieloma magazynami danych klucz-wartość.

  • Redis może replikować dane do dowolnej liczby urządzeń podrzędnych.

Zalety Redis

Oto niektóre zalety Redis.

  • Exceptionally fast - Redis jest bardzo szybki i może wykonać około 110000 zestawów na sekundę, około 81000 GET na sekundę.

  • Supports rich data types- Redis natywnie obsługuje większość typów danych, które programiści już znają, takich jak lista, zestaw, sortowany zestaw i hashe. Ułatwia to rozwiązywanie różnorodnych problemów, ponieważ wiemy, który problem można lepiej rozwiązać przy użyciu jakiego typu danych.

  • Operations are atomic - Wszystkie operacje Redis są niepodzielne, co gwarantuje, że jeśli dwóch klientów jednocześnie uzyskuje dostęp, serwer Redis otrzyma zaktualizowaną wartość.

  • Multi-utility tool - Redis jest narzędziem wielofunkcyjnym i może być używane w wielu przypadkach użycia, takich jak buforowanie, kolejki wiadomości (Redis natywnie obsługuje publikowanie / subskrybowanie), wszelkie krótkotrwałe dane w aplikacji, takie jak sesje aplikacji internetowych, liczba trafień na strony itp.

Redis a inne magazyny klucza i wartości

  • Redis to inna ścieżka ewolucji w bazach danych klucz-wartość, gdzie wartości mogą zawierać bardziej złożone typy danych, z niepodzielnymi operacjami zdefiniowanymi na tych typach danych.

  • Redis to baza danych w pamięci, ale trwała w bazie danych na dysku, dlatego reprezentuje inny kompromis, w którym osiąga się bardzo wysoką prędkość zapisu i odczytu przy ograniczeniu zestawów danych, które nie mogą być większe niż pamięć.

  • Inną zaletą baz danych w pamięci jest to, że reprezentacja pamięci złożonych struktur danych jest znacznie prostsza w obsłudze w porównaniu z tą samą strukturą danych na dysku. W ten sposób Redis może wiele zdziałać przy niewielkiej wewnętrznej złożoności.

W tym rozdziale dowiesz się o konfiguracji środowiska dla Redis.

Zainstaluj Redis na Ubuntu

Aby zainstalować Redis na Ubuntu, przejdź do terminala i wpisz następujące polecenia -

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

Spowoduje to zainstalowanie Redis na twoim komputerze.

Uruchom Redis

$redis-server

Sprawdź, czy Redis działa

$redis-cli

Otworzy się monit redis.

redis 127.0.0.1:6379>

W powyższym monicie 127.0.0.1 to adres IP twojego komputera, a 6379to port, na którym działa serwer Redis. Teraz wpisz co następujePING Komenda.

redis 127.0.0.1:6379> ping 
PONG

To pokazuje, że Redis został pomyślnie zainstalowany na twoim komputerze.

Zainstaluj Redis Desktop Manager w systemie Ubuntu

Aby zainstalować menedżera pulpitu Redis w systemie Ubuntu, wystarczy pobrać pakiet z witryny https://redisdesktop.com/download

Otwórz pobrany pakiet i zainstaluj go.

Menedżer pulpitu Redis zapewnia interfejs użytkownika do zarządzania kluczami i danymi Redis.

W Redis istnieje plik konfiguracyjny (redis.conf) dostępny w katalogu głównym Redis. Chociaż możesz pobrać i ustawić wszystkie konfiguracje Redis przez RedisCONFIG Komenda.

Składnia

Poniżej znajduje się podstawowa składnia Redis CONFIG Komenda.

redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME

Przykład

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

Aby uzyskać wszystkie ustawienia konfiguracji, użyj * zamiast CONFIG_SETTING_NAME

Przykład

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) ""

Edytuj konfigurację

Aby zaktualizować konfigurację, możesz edytować redis.conf plik bezpośrednio lub możesz zaktualizować konfiguracje za pośrednictwem CONFIG set Komenda.

Składnia

Poniżej znajduje się podstawowa składnia CONFIG SET Komenda.

redis 127.0.0.1:6379> CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE

Przykład

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 obsługuje 5 typów typów danych.

Smyczki

Ciąg Redis to sekwencja bajtów. Ciągi w Redis są bezpieczne binarnie, co oznacza, że ​​mają znaną długość, która nie jest określana przez żadne specjalne znaki kończące. W ten sposób w jednym ciągu można przechowywać wszystko do 512 megabajtów.

Przykład

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

W powyższym przykładzie SET i GET to polecenia Redis, name jest kluczem używanym w Redis i tutorialspoint to wartość ciągu przechowywana w Redis.

Note - Wartość ciągu może mieć maksymalnie 512 megabajtów długości.

Hashe

Skrót Redis to zbiór par klucz-wartość. Hashe Redis to mapy między polami ciągów a wartościami ciągów. Dlatego są używane do reprezentowania obiektów.

Przykład

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"

W powyższym przykładzie, typ danych hash jest używany do przechowywania obiektu użytkownika, który zawiera podstawowe informacje o użytkowniku. TutajHMSET, HGETALL to polecenia dla Redis, podczas gdy user − 1 jest kluczem.

Każdy mieszania można przechowywać do 2 32 - 1 par wartości pola (ponad 4 miliardy).

Listy

Listy Redis to po prostu listy ciągów, posortowane według kolejności wstawiania. Możesz dodawać elementy do listy Redis na głowie lub ogonie.

Przykład

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"

Maksymalna długość listy to 2 32 - 1 elementów (4294967295, ponad 4 miliardy elementów na listę).

Zestawy

Zestawy Redis to nieuporządkowana kolekcja ciągów. W Redis możesz dodawać, usuwać i testować istnienie elementów członkowskich w złożoności czasowej O (1).

Przykład

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 - W powyższym przykładzie rabitmq jest dodawany dwukrotnie, jednak ze względu na unikalną właściwość zestawu jest dodawany tylko raz.

Maksymalna liczba członków w zestawie to 2 32 - 1 (4294967295, ponad 4 miliardy członków w zestawie).

Sortowane zestawy

Sortowane zestawy Redis są podobne do zestawów Redis, nie powtarzających się kolekcji ciągów. Różnica polega na tym, że każdy element Posortowanego zestawu jest powiązany z oceną, która jest używana w celu uporządkowania posortowanego zestawu, od najmniejszego do największego wyniku. Chociaż członkowie są wyjątkowi, wyniki mogą się powtarzać.

Przykład

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"

Polecenia Redis służą do wykonywania niektórych operacji na serwerze Redis.

Do uruchamiania poleceń na serwerze Redis potrzebny jest klient Redis. Klient Redis jest dostępny w pakiecie Redis, który zainstalowaliśmy wcześniej.

Składnia

Poniżej przedstawiono podstawową składnię klienta Redis.

$redis-cli

Przykład

Poniższy przykład wyjaśnia, jak możemy uruchomić klienta Redis.

Aby uruchomić klienta Redis, otwórz terminal i wpisz polecenie redis-cli. Spowoduje to połączenie z lokalnym serwerem i teraz możesz uruchomić dowolne polecenie.

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

W powyższym przykładzie łączymy się z serwerem Redis działającym na komputerze lokalnym i wykonujemy polecenie PING, który sprawdza, czy serwer działa, czy nie.

Uruchom polecenia na serwerze zdalnym

Aby uruchomić polecenia na serwerze zdalnym Redis, musisz połączyć się z serwerem przez tego samego klienta redis-cli

Składnia

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

Przykład

Poniższy przykład pokazuje, jak połączyć się ze zdalnym serwerem Redis, działającym na hoście 127.0.0.1, porcie 6379 i z hasłem mypass.

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

Polecenia klawiszy Redis służą do zarządzania kluczami w Redis. Poniżej przedstawiono składnię używania poleceń klawiszy redis.

Składnia

redis 127.0.0.1:6379> COMMAND KEY_NAME

Przykład

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

W powyższym przykładzie DEL to polecenie, while tutorialspointjest kluczem. Jeśli klucz zostanie usunięty, wynikiem polecenia będzie (liczba całkowita) 1, w przeciwnym razie (liczba całkowita) 0.

Polecenia klawiszy Redis

Poniższa tabela zawiera listę podstawowych poleceń związanych z klawiszami.

Sr.No Polecenie i opis
1 Klawisz DEL

To polecenie usuwa klucz, jeśli istnieje.

2 Klawisz DUMP

To polecenie zwraca serializowaną wersję wartości przechowywanej w określonym kluczu.

3 ISTNIEJE klawisz

To polecenie sprawdza, czy klucz istnieje, czy nie.

4 EXPIRE klucz sekundy

Ustawia wygaśnięcie klucza po określonym czasie.

5 Znacznik czasu klucza EXPIREAT

Ustawia wygaśnięcie klucza po określonym czasie. Tutaj czas jest w uniksowym formacie znacznika czasu.

6 Klucz PEXPIRE w milisekundach

Ustaw czas wygaśnięcia klucza w milisekundach.

7 PEXPIREAT klucz milisekund-znacznik czasu

Ustawia datę wygaśnięcia klucza w sygnaturze czasowej systemu Unix określoną w milisekundach.

8 KEYS wzór

Znajduje wszystkie klucze pasujące do określonego wzorca.

9 Klawisz MOVE db

Przenosi klucz do innej bazy danych.

10 Klawisz PERSIST

Usuwa wygaśnięcie z klucza.

11 Klawisz PTTL

Pobiera pozostały czas wygaśnięcia kluczy w milisekundach.

12 Klucz TTL

Pobiera pozostały czas wygaśnięcia kluczy.

13 RANDOMKEY

Zwraca losowy klucz z Redis.

14 RENAME key newkey

Zmienia nazwę klucza.

15 RENAMENX klucz newkey

Zmienia nazwę klucza, jeśli nowy klucz nie istnieje.

16 Klawisz TYPE

Zwraca typ danych wartości przechowywanej w kluczu.

Polecenia ciągów Redis są używane do zarządzania wartościami ciągów w Redis. Poniżej znajduje się składnia używania poleceń tekstowych Redis.

Składnia

redis 127.0.0.1:6379> COMMAND KEY_NAME

Przykład

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

W powyższym przykładzie SET i GET to polecenia, podczas gdy tutorialspoint jest kluczem.

Polecenia ciągów Redis

Poniższa tabela zawiera listę podstawowych poleceń do zarządzania ciągami znaków w Redis.

Sr.No Polecenie i opis
1 Ustaw wartość klucza

To polecenie ustawia wartość w określonym kluczu.

2 Weź klucz

Pobiera wartość klucza.

3 Klawisz GETRANGE początek koniec

Pobiera podciąg ciągu przechowywanego w kluczu.

4 Wartość klucza GETSET

Ustawia wartość ciągu klucza i zwraca jego starą wartość.

5 GETBIT przesunięcie klucza

Zwraca wartość bitową z przesunięciem w wartości ciągu przechowywanej w kluczu.

6 MGET klucz1 [klucz2 ..]

Pobiera wartości wszystkich podanych kluczy

7 Wartość przesunięcia klucza SETBIT

Ustawia lub czyści bit na przesunięciu w wartości ciągu przechowywanej w kluczu

8 Wartość sekund klucza SETEX

Ustawia wartość z wygaśnięciem klucza

9 Wartość klucza SETNX

Ustawia wartość klucza, tylko jeśli klucz nie istnieje

10 Wartość przesunięcia klucza SETRANGE

Zastępuje część ciągu w kluczu, zaczynając od określonego przesunięcia

11 Klawisz STRLEN

Pobiera długość wartości przechowywanej w kluczu

12 Wartość klucza MSET [wartość klucza ...]

Ustawia wiele kluczy na wiele wartości

13 Wartość klucza MSETNX [wartość klucza ...]

Ustawia wiele kluczy na wiele wartości, tylko jeśli żaden z kluczy nie istnieje

14 Wartość milisekund klucza PSETEX

Ustawia wartość i wygaśnięcie klucza w milisekundach

15 Klucz INCR

Zwiększa wartość całkowitą klucza o jeden

16 Przyrost klucza INCRBY

Zwiększa wartość całkowitą klucza o podaną wartość

17 Przyrost klucza INCRBYFLOAT

Zwiększa wartość zmiennoprzecinkową klucza o podaną wartość

18 Klawisz DECR

Zmniejsza wartość całkowitą klucza o jeden

19 Dekrementacja klawisza DECRBY

Zmniejsza wartość całkowitą klucza o podaną liczbę

20 Wartość klucza APPEND

Dołącza wartość do klucza

Hashe Redis to mapy między polami ciągów a wartościami ciągów. W związku z tym są idealnym typem danych do reprezentowania obiektów.

W Redis każdy hash może przechowywać do ponad 4 miliardów par wartości pola.

Przykład

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"

W powyższym przykładzie ustawiliśmy szczegóły samouczków Redis (nazwa, opis, polubienia, goście) w hashu o nazwie „tutorialspoint”.

Polecenia skrótu Redis

Poniższa tabela zawiera listę podstawowych poleceń związanych z hashem.

Sr.No Polecenie i opis
1 HDEL key field2 [field2]

Usuwa jedno lub więcej pól z krzyżykiem.

2 Pole klucza HEXISTS

Określa, czy pole skrótu istnieje, czy nie.

3 Pole klucza HGET

Pobiera wartość pola skrótu przechowywanego pod określonym kluczem.

4 Klawisz HGETALL

Pobiera wszystkie pola i wartości przechowywane w skrócie pod określonym kluczem

5 Przyrost pola klucza HINCRBY

Zwiększa wartość całkowitą pola skrótu o podaną liczbę

6 Przyrost pola klucza HINCRBYFLOAT

Zwiększa wartość zmiennoprzecinkową pola mieszającego o określoną kwotę

7 Klucz HKEYS

Pobiera wszystkie pola w skrócie

8 Klawisz HLEN

Pobiera liczbę pól w skrócie

9 HMGET key field1 [field2]

Pobiera wartości wszystkich podanych pól skrótu

10 Klucz HMSET pole1 wartość1 [pole2 wartość2]

Ustawia wiele pól haszujących na wiele wartości

11 Wartość pola klucza HSET

Ustawia wartość ciągu pola skrótu

12 Wartość pola klucza HSETNX

Ustawia wartość pola skrótu, tylko jeśli pole nie istnieje

13 Klucz HVALS

Pobiera wszystkie wartości z skrótu

14 Kursor klawisza HSCAN [wzorzec MATCH] [liczba COUNT]

Stopniowo iteruje pola skrótu i ​​skojarzone z nimi wartości

Listy Redis to po prostu listy ciągów, posortowane według kolejności wstawiania. Możesz dodawać elementy na listach Redis w nagłówku lub na końcu listy.

Maksymalna długość listy to 2 32 - 1 elementów (4294967295, ponad 4 miliardy elementów na listę).

Przykład

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"

W powyższym przykładzie trzy wartości są wstawiane do listy Redis o nazwie „tutorials” przez polecenie LPUSH.

Polecenia listy Redis

Poniższa tabela zawiera listę podstawowych poleceń związanych z listami.

Sr.No Polecenie i opis
1 BLPOP key1 [key2] timeout

Usuwa i pobiera pierwszy element z listy lub blokuje, dopóki nie będzie dostępny

2 Limit czasu BRPOP klucz1 [klucz2]

Usuwa i pobiera ostatni element z listy lub blokuje, dopóki nie będzie dostępny

3 Limit czasu źródłowego miejsca docelowego BRPOPLPUSH

Zdejmuje wartość z listy, odkłada ją na inną listę i zwraca ją; lub blokuje się, dopóki jeden nie będzie dostępny

4 Indeks klucza LINDEX

Pobiera element z listy według indeksu

5 LINSERT klucz PRZED | PO wartości przestawnej

Wstawia element przed lub po innym elemencie na liście

6 Klawisz LLEN

Pobiera długość listy

7 Klucz LPOP

Usuwa i pobiera pierwszy element z listy

8 Klucz LPUSH wartość1 [wartość2]

Dołącza jedną lub wiele wartości do listy

9 Wartość klucza LPUSHX

Dołącza wartość do listy, tylko jeśli lista istnieje

10 Klawisz LRANGE start stop

Pobiera zakres elementów z listy

11 Wartość liczby kluczy LREM

Usuwa elementy z listy

12 Wartość indeksu klucza LSET

Ustawia wartość elementu na liście według jego indeksu

13 Klawisz LTRIM start stop

Przycina listę do określonego zakresu

14 Klucz RPOP

Usuwa i pobiera ostatni element z listy

15 Miejsce docelowe źródła RPOPLPUSH

Usuwa ostatni element z listy, dołącza go do innej listy i zwraca

16 Klucz RPUSH wartość1 [wartość2]

Dołącza jedną lub wiele wartości do listy

17 Wartość klucza RPUSHX

Dołącza wartość do listy, tylko jeśli lista istnieje

Zestawy Redis to nieuporządkowana kolekcja wyjątkowych stringów. Unikalne zestawy środków nie pozwalają na powtórzenie danych w kluczu.

W zestawie Redis dodawaj, usuwaj i testuj pod kątem istnienia elementów członkowskich w O (1) (stały czas niezależnie od liczby elementów zawartych w zestawie). Maksymalna długość listy to 2 32 - 1 elementów (4294967295, ponad 4 miliardy elementów w zestawie).

Przykład

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"

W powyższym przykładzie trzy wartości są wstawiane do zestawu Redis o nazwie „tutorials” za pomocą polecenia SADD.

Redis ustawia polecenia

Poniższa tabela zawiera listę podstawowych poleceń związanych z zestawami.

Sr.No Polecenie i opis
1 Kluczowy członek SADD1 [członek2]

Dodaje jednego lub więcej członków do zestawu

2 Klawisz SCARD

Pobiera liczbę członków w zestawie

3 SDIFF klucz1 [klucz2]

Odejmuje wiele zestawów

4 SDIFFSTORE docelowy klucz1 [klucz2]

Odejmuje wiele zestawów i zapisuje wynikowy zestaw w kluczu

5 SINTER klucz1 [klucz2]

Przecina wiele zestawów

6 SINTERSTORE miejsce docelowe klucz1 [klucz2]

Przecina wiele zestawów i przechowuje wynikowy zestaw w kluczu

7 Kluczowy członek SISMEMBER

Określa, czy dana wartość należy do zestawu

8 Klucz SMEMBERS

Pobiera wszystkich członków zestawu

9 SMOVE źródłowego członka docelowego

Przenosi członka z jednego zestawu do drugiego

10 Klucz SPOP

Usuwa i zwraca losowego członka z zestawu

11 Klucz SRANDMEMBER [liczba]

Pobiera jednego lub wielu losowych członków z zestawu

12 Kluczowy członek SREM1 [członek2]

Usuwa jednego lub więcej członków z zestawu

13 SUNION klucz1 [klucz2]

Dodaje wiele zestawów

14 SUNIONSTORE miejsce docelowe klucz1 [klucz2]

Dodaje wiele zestawów i zapisuje wynikowy zestaw w kluczu

15 Kursor klawisza SSCAN [wzorzec MATCH] [liczba COUNT]

Przyrostowo iteruje elementy zestawu

Sortowane zestawy Redis są podobne do zestawów Redis z unikalną cechą wartości przechowywanych w zestawie. Różnica polega na tym, że każdy element Posortowanego zestawu jest powiązany z oceną, która jest używana w celu uporządkowania posortowanego zestawu, od najmniejszego do największego wyniku.

W sortowanym zestawie Redis dodaj, usuń i przetestuj pod kątem istnienia elementów członkowskich w O (1) (stały czas niezależnie od liczby elementów zawartych w zestawie). Maksymalna długość listy to 2 32 - 1 elementów (4294967295, ponad 4 miliardy elementów w zestawie).

Przykład

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"

W powyższym przykładzie trzy wartości są wstawiane wraz z wynikiem w posortowanym zestawie Redis o nazwie „tutorials” za pomocą polecenia ZADD.

Polecenia sortowanych zestawów Redis

Poniższa tabela zawiera listę podstawowych poleceń związanych z posortowanymi zestawami.

Sr.No Polecenie i opis
1 Klucz ZADD wynik1 członek1 [wynik2 członek2]

Dodaje jednego lub więcej członków do posortowanego zestawu lub aktualizuje jego wynik, jeśli już istnieje

2 Klucz ZCARD

Pobiera liczbę członków w posortowanym zestawie

3 Klucz ZCOUNT min maks

Zlicza członków w posortowanym zestawie z wynikami w podanych wartościach

4 Element przyrostu klucza ZINCRBY

Zwiększa punktację członka w posortowanym zestawie

5 Klawisz numkeys miejsca docelowego ZINTERSTORE [klawisz ...]

Przecina wiele posortowanych zestawów i przechowuje wynikowy posortowany zestaw w nowym kluczu

6 Klucz ZLEXCOUNT min. Maks

Zlicza liczbę członków w posortowanym zbiorze między podanym zakresem leksykograficznym

7 Klawisz ZRANGE start stop [WITHSCORES]

Zwraca zakres elementów w posortowanym zestawie według indeksu

8 Klawisz ZRANGEBYLEX min, maks. [LIMIT offset count]

Zwraca zakres elementów w posortowanym zestawie według zakresu leksykograficznego

9 Klucz ZRANGEBYSCORE min. Maks. [WITHSCORES] [LIMIT]

Zwraca zakres członków w posortowanym zestawie według wyniku

10 Kluczowy członek ZRANK

Określa indeks elementu członkowskiego w posortowanym zestawie

11 Kluczowy członek ZREM [członek ...]

Usuwa co najmniej jednego członka z posortowanego zestawu

12 ZREMRANGEBYLEX klucz min max

Usuwa wszystkich członków w posortowanym zbiorze między podanym zakresem leksykograficznym

13 ZREMRANGEBYRANK klawisz start stop

Usuwa wszystkich członków z posortowanego zestawu w ramach podanych indeksów

14 Klawisz ZREMRANGEBYSCORE min maks

Usuwa wszystkich członków z posortowanego zestawu w ramach podanych wyników

15 Klawisz ZREVRANGE start stop [WITHSCORES]

Zwraca zakres elementów w posortowanym zestawie, według indeksu, z wynikami uporządkowanymi od najwyższego do najniższego

16 Maksymalna min. Klucza ZREVRANGEBYSCORE [WITHSCORES]

Zwraca zakres członków w posortowanym zestawie, według wyniku, z wynikami uporządkowanymi od najwyższego do najniższego

17 Kluczowy członek ZREVRANK

Określa indeks członka w posortowanym zestawie, z wynikami uporządkowanymi od najwyższego do najniższego

18 Kluczowy członek ZSCORE

Pobiera wynik skojarzony z danym członkiem w posortowanym zestawie

19 ZUNIONSTORE docelowy klawisz numkeys [klucz ...]

Dodaje wiele posortowanych zestawów i zapisuje wynikowy posortowany zestaw w nowym kluczu

20 Kursor klawisza ZSCAN [wzorzec dopasowania] [liczba COUNT]

Przyrostowo iteruje posortowane elementy zestawów i skojarzone z nimi oceny

Redis HyperLogLog to algorytm wykorzystujący randomizację w celu przybliżenia liczby unikalnych elementów w zestawie przy użyciu tylko stałej i niewielkiej ilości pamięci.

HyperLogLog zapewnia bardzo dobre przybliżenie kardynalności zestawu nawet przy użyciu bardzo małej ilości pamięci około 12 kB na klucz ze standardowym błędem 0,81%. Nie ma ograniczeń co do liczby przedmiotów, które możesz policzyć, chyba że zbliżasz się do 2 64 sztuk.

Przykład

Poniższy przykład wyjaśnia, jak działa Redis HyperLogLog.

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

Polecenia Redis HyperLogLog

Poniższa tabela zawiera listę podstawowych poleceń związanych z Redis HyperLogLog.

Sr.No Polecenie i opis
1 Element klucza PFADD [element ...]

Dodaje określone elementy do określonego HyperLogLog.

2 Klucz PFCOUNT [klucz ...]

Zwraca przybliżoną liczność zbioru (ów) obserwowaną przez HyperLogLog w kluczu (ach).

3 PFMERGE destkey sourcekey [sourcekey ...]

Łączy N różnych HyperLogLog w jeden.

Redis Pub / Sub implementuje system przesyłania wiadomości, w którym nadawcy (w terminologii redis nazywani wydawcami) wysyłają wiadomości, podczas gdy odbiorcy (subskrybenci) je odbierają. Wywoływane jest łącze, za pomocą którego przesyłane są wiadomościchannel.

W Redis klient może subskrybować dowolną liczbę kanałów.

Przykład

Poniższy przykład wyjaśnia, jak działa koncepcja publikowania subskrybentów. W poniższym przykładzie jeden klient subskrybuje kanał o nazwie „redisChat”.

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

Teraz dwóch klientów publikuje wiadomości na tym samym kanale o nazwie „redisChat”, a klient subskrybowany powyżej odbiera wiadomości.

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"

Polecenia Redis PubSub

Poniższa tabela zawiera listę podstawowych poleceń związanych z Redis Pub / Sub.

Sr.No Polecenie i opis
1 Wzorzec PSUBSCRIBE [wzorzec ...]

Subskrybuje kanały pasujące do podanych wzorców.

2 Podkomenda PUBSUB [argument [argument ...]]

Informuje o stanie systemu Pub / Sub. Na przykład, którzy klienci są aktywni na serwerze.

3 OPUBLIKUJ wiadomość kanału

Wysyła wiadomość do kanału.

4 PUNSUBSCRIBE [wzór [wzorzec ...]]

Przestaje nasłuchiwać wiadomości wysyłanych do kanałów pasujących do podanych wzorców.

5 SUBSCRIBE kanał [kanał ...]

Nasłuchuje wiadomości publikowanych na podanych kanałach.

6 UNSUBSCRIBE [kanał [kanał ...]]

Zatrzymuje nasłuchiwanie wiadomości wysyłanych na podane kanały.

Transakcje Redis umożliwiają wykonanie grupy poleceń w jednym kroku. Poniżej przedstawiono dwie właściwości transakcji.

  • Wszystkie polecenia w transakcji są wykonywane sekwencyjnie jako pojedyncza izolowana operacja. Nie jest możliwe, aby żądanie wysłane przez innego klienta było obsługiwane w trakcie wykonywania transakcji Redis.

  • Transakcja Redis jest również atomowa. Atomowa oznacza, że ​​wszystkie polecenia lub żadne nie są przetwarzane.

Próba

Transakcja Redis jest inicjowana poleceniem MULTI a następnie należy przekazać listę poleceń, które mają zostać wykonane w transakcji, po czym cała transakcja jest wykonywana EXEC Komenda.

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

Przykład

Poniższy przykład wyjaśnia, w jaki sposób można zainicjować i wykonać transakcję Redis.

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

Polecenia transakcji Redis

Poniższa tabela przedstawia kilka podstawowych poleceń związanych z transakcjami Redis.

Sr.No Polecenie i opis
1 ODRZUCAĆ

Odrzuca wszystkie polecenia wydane po MULTI

2 EXEC

Wykonuje wszystkie polecenia wydane po MULTI

3 WIELO

Zaznacza początek bloku transakcji

4 UNOATCH

Zapomina o wszystkich obserwowanych kluczach

5 WATCH klawisz [klawisz ...]

Śledzi podane klucze, aby określić wykonanie bloku MULTI / EXEC

Skrypty Redis są używane do oceny skryptów za pomocą interpretera Lua. Jest wbudowany w Redis począwszy od wersji 2.6.0. Polecenie używane do tworzenia skryptów toEVAL Komenda.

Składnia

Poniżej znajduje się podstawowa składnia EVAL Komenda.

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

Przykład

Poniższy przykład wyjaśnia, jak działa skrypty Redis.

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

Polecenia skryptowe Redis

Poniższa tabela zawiera listę podstawowych poleceń związanych ze skryptami Redis.

Sr.No Polecenie i opis
1 Skrypt EVAL numkeys klucz [klucz ...] arg [arg ...]

Wykonuje skrypt Lua.

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

Wykonuje skrypt Lua.

3 SCRIPT ISTNIEJE skrypt [skrypt ...]

Sprawdza istnienie skryptów w pamięci podręcznej skryptów.

4 SCRIPT FLUSH

Usuwa wszystkie skrypty z pamięci podręcznej skryptów.

5 SCRIPT KILL

Zabija skrypt, który jest aktualnie wykonywany.

6 Skrypt wczytywania skryptu

Ładuje określony skrypt Lua do pamięci podręcznej skryptów.

Polecenia połączenia Redis są zasadniczo używane do zarządzania połączeniami klientów z serwerem Redis.

Przykład

Poniższy przykład wyjaśnia, w jaki sposób klient uwierzytelnia się na serwerze Redis i sprawdza, czy serwer działa, czy nie.

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

Polecenia połączenia Redis

Poniższa tabela zawiera listę podstawowych poleceń związanych z połączeniami Redis.

Sr.No Polecenie i opis
1 Hasło AUTH

Uwierzytelnia się na serwerze przy użyciu podanego hasła

2 Wiadomość ECHO

Wyświetla podany ciąg

3 ŚWIST

Sprawdza, czy serwer działa, czy nie

4 PORZUCIĆ

Zamyka bieżące połączenie

5 WYBIERZ indeks

Zmienia wybraną bazę danych dla bieżącego połączenia

Polecenia serwera Redis są zasadniczo używane do zarządzania serwerem Redis.

Przykład

Poniższy przykład wyjaśnia, w jaki sposób możemy uzyskać wszystkie statystyki i informacje o serwerze.

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

Polecenia serwera Redis

Poniższa tabela zawiera listę podstawowych poleceń związanych z serwerem Redis.

Sr.No Polecenie i opis
1 BGREWRITEAOF

Asynchronicznie przepisuje plik tylko do dołączania

2 BGSAVE

Asynchronicznie zapisuje zestaw danych na dysku

3 KLIENT KILL [ip: port] [ID identyfikator-klienta]

Zabija połączenie klienta

4 LISTA KLIENTÓW

Pobiera listę połączeń klientów z serwerem

5 KLIENT GETNAME

Pobiera nazwę bieżącego połączenia

6 Limit czasu PAUZY KLIENTA

Zatrzymuje przetwarzanie poleceń klientów na określony czas

7 CLIENT SETNAME nazwa-połączenia

Ustawia nazwę bieżącego połączenia

8 GNIAZDA KLASTRA

Pobiera tablicę miejsc klastra na mapowania węzłów

9 KOMENDA

Pobiera tablicę szczegółów polecenia Redis

10 LICZBA POLECEŃ

Pobiera całkowitą liczbę poleceń Redis

11 POLECENIE GETKEYS

Wyodrębnia klucze podane w pełnym poleceniu Redis

12 BGSAVE

Asynchronicznie zapisuje zestaw danych na dysku

13 INFORMACJE O POLECENIU nazwa-polecenia [nazwa-polecenia ...]

Pobiera tablicę szczegółowych szczegółów polecenia Redis

14 CONFIG GET parametr

Pobiera wartość parametru konfiguracji

15 CONFIG REWRITE

Przepisuje plik konfiguracyjny z konfiguracją w pamięci

16 Wartość parametru CONFIG SET

Ustawia parametr konfiguracyjny na podaną wartość

17 CONFIG RESETSTAT

Resetuje statystyki zwrócone przez INFO

18 DBSIZE

Zwraca liczbę kluczy w wybranej bazie danych

19 Klawisz DEBUG OBJECT

Pobiera informacje debugowania dotyczące klucza

20 DEBUG SEGFAULT

Powoduje awarię serwera

21 FLUSHALL

Usuwa wszystkie klucze ze wszystkich baz danych

22 FLUSHDB

Usuwa wszystkie klucze z bieżącej bazy danych

23 INFO [sekcja]

Pobiera informacje i statystyki dotyczące serwera

24 LASTSAVE

Pobiera sygnaturę czasową systemu UNIX ostatniego pomyślnego zapisania na dysku

25 MONITOR

Nasłuchuje w czasie rzeczywistym wszystkich żądań otrzymanych przez serwer

26 ROLA

Zwraca rolę instancji w kontekście replikacji

27 ZAPISAĆ

Synchronicznie zapisuje zestaw danych na dysku

28 WYŁĄCZENIE [NOSAVE] [SAVE]

Synchronicznie zapisuje zestaw danych na dysku, a następnie wyłącza serwer

29 Port hosta SLAVEOF

Sprawia, że ​​serwer jest niewolnikiem innej instancji lub promuje go jako serwer główny

30 Podkomenda SLOWLOG [argument]

Zarządza dziennikiem powolnych zapytań Redis

31 SYNCHR

Polecenie używane do replikacji

32 CZAS

Zwraca bieżący czas serwera

Redis SAVE polecenie służy do tworzenia kopii zapasowej bieżącej bazy danych Redis.

Składnia

Poniżej znajduje się podstawowa składnia redis SAVE Komenda.

127.0.0.1:6379> SAVE

Przykład

Poniższy przykład tworzy kopię zapasową bieżącej bazy danych.

127.0.0.1:6379> SAVE  
OK

To polecenie utworzy plik dump.rdb plik w katalogu Redis.

Przywróć dane Redis

Aby przywrócić dane Redis, przenieś plik kopii zapasowej Redis (dump.rdb) do katalogu Redis i uruchom serwer. Aby uzyskać katalog Redis, użyjCONFIG polecenie Redis, jak pokazano poniżej.

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

Na wyjściu powyższego polecenia /user/tutorialspoint/redis-2.8.13/src to katalog, w którym jest zainstalowany serwer Redis.

Bgsave

Aby utworzyć kopię zapasową Redis, alternatywne polecenie BGSAVEjest również dostępna. To polecenie uruchomi proces tworzenia kopii zapasowej i uruchomi go w tle.

Przykład

127.0.0.1:6379> BGSAVE  
Background saving started

Baza danych Redis może być zabezpieczona, tak że każdy klient nawiązujący połączenie musi zostać uwierzytelniony przed wykonaniem polecenia. Aby zabezpieczyć Redis, musisz ustawić hasło w pliku konfiguracyjnym.

Przykład

Poniższy przykład przedstawia kroki, aby zabezpieczyć instancję Redis.

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

Domyślnie ta właściwość jest pusta, co oznacza, że ​​dla tej instancji nie jest ustawione żadne hasło. Możesz zmienić tę właściwość, wykonując następujące polecenie.

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

Po ustawieniu hasła, jeśli którykolwiek klient uruchomi polecenie bez uwierzytelniania, to (error) NOAUTH Authentication required. błąd zwróci. Dlatego klient musi korzystaćAUTH polecenie uwierzytelnienia się.

Składnia

Poniżej znajduje się podstawowa składnia AUTH Komenda.

127.0.0.1:6379> AUTH password

Przykład

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"

Benchmark Redis to narzędzie do sprawdzania wydajności Redis poprzez jednoczesne uruchomienie n poleceń.

Składnia

Poniżej przedstawiono podstawową składnię testu porównawczego Redis.

redis-benchmark [option] [option value]

Przykład

Poniższy przykład sprawdza Redis, wywołując 100000 poleceń.

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

Poniżej znajduje się lista dostępnych opcji w teście Redis.

Sr.No Opcja Opis Domyślna wartość
1 -h Określa nazwę hosta serwera 127.0.0.1
2 -p Określa port serwera 6379
3 -s Określa gniazdo serwera
4 -c Określa liczbę połączeń równoległych 50
5 -n Określa łączną liczbę żądań 10000
6 -d Określa rozmiar danych o wartości SET / GET w bajtach 2
7 -k 1 = utrzymaj przy życiu, 0 = połącz się ponownie 1
8 -r Użyj losowych kluczy dla SET / GET / INCR, losowych wartości dla SADD
9 -p Potok <numreq> żądań 1
10 -h Określa nazwę hosta serwera
11 -q Wymusza ciszę w Redis. Po prostu pokazuje wartości zapytania / s
12 --csv Wyjście w formacie CSV
13 -l Generuje pętlę, uruchamia testy na zawsze
14 -t Uruchamia tylko listę testów oddzielonych przecinkami
15 -I Tryb czuwania. Po prostu otwiera N bezczynnych połączeń i czekaj

Przykład

Poniższy przykład przedstawia wiele opcji użycia w narzędziu testowym Redis.

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

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

Redis akceptuje połączenia klientów na skonfigurowanym nasłuchującym porcie TCP i gnieździe Unix, jeśli jest włączone. Po zaakceptowaniu nowego połączenia klienta wykonywane są następujące operacje -

  • Gniazdo klienta jest wprowadzane w stan nieblokujący, ponieważ Redis używa multipleksujących i nieblokujących operacji we / wy.

  • Opcja TCP_NODELAY jest ustawiona, aby zapewnić, że nie mamy opóźnień w naszym połączeniu.

  • Tworzone jest zdarzenie pliku do odczytu, aby Redis mógł zbierać zapytania klientów, gdy tylko nowe dane będą dostępne do odczytu w gnieździe.

Maksymalna liczba klientów

W konfiguracji Redis (redis.conf) istnieje właściwość o nazwie maxclients, który opisuje maksymalną liczbę klientów, którzy mogą łączyć się z Redis.

Poniżej przedstawiono podstawową składnię polecenia.

config get maxclients  

1) "maxclients" 
2) "10000"

Domyślnie ta właściwość jest ustawiona na 10000 (w zależności od maksymalnej liczby deskryptorów plików w systemie operacyjnym), chociaż można ją zmienić.

Przykład

W poniższym przykładzie podczas uruchamiania serwera ustawiliśmy maksymalną liczbę klientów na 100000.

redis-server --maxclients 100000

Polecenia klienta

Sr.No Komenda Opis
1 CLIENT LIST Zwraca listę klientów połączonych z serwerem Redis
2 CLIENT SETNAME Przypisuje nazwę do bieżącego połączenia
3 CLIENT GETNAME Zwraca nazwę bieżącego połączenia ustawioną przez CLIENT SETNAME
4 CLIENT PAUSE To jest polecenie kontroli połączeń, które może zawiesić wszystkich klientów Redis na określony czas (w milisekundach)
5 CLIENT KILL To polecenie zamyka dane połączenie klienta.

Redis jest serwerem TCP i obsługuje protokół żądanie / odpowiedź. W Redis żądanie jest realizowane za pomocą następujących kroków -

  • Klient wysyła zapytanie do serwera i odczytuje z gniazda, zwykle w sposób blokujący, odpowiedź serwera.

  • 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.

Przykład

Aby sprawdzić potokowanie Redis, po prostu uruchom instancję Redis i wpisz następujące polecenie w terminalu.

$(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

W powyższym przykładzie sprawdzimy połączenie Redis za pomocą PINGKomenda. Ustawiliśmy ciąg o nazwietutorial z wartością redis. Później otrzymujemy wartość tych kluczy i trzykrotnie zwiększamy liczbę odwiedzających. W rezultacie widzimy, że wszystkie polecenia są przesyłane do Redis raz, a Redis dostarcza dane wyjściowe wszystkich poleceń w jednym kroku.

Zalety rurociągów

Zaletą tej techniki jest drastyczna poprawa wydajności protokołu. Przyspieszenie osiągnięte dzięki pipeliningowi waha się od współczynnika pięciu dla połączeń z hostem lokalnym do co najmniej stu w przypadku wolniejszych połączeń internetowych.

Partycjonowanie to proces dzielenia danych na wiele instancji Redis, dzięki czemu każda instancja będzie zawierać tylko podzbiór kluczy.

Korzyści z partycjonowania

  • Pozwala na znacznie większe bazy danych, wykorzystując sumę pamięci wielu komputerów. Bez partycjonowania jesteś ograniczony ilością pamięci, którą może obsłużyć pojedynczy komputer.

  • Pozwala na skalowanie mocy obliczeniowej do wielu rdzeni i wielu komputerów, a przepustowość sieci do wielu komputerów i kart sieciowych.

Wady partycjonowania

  • Operacje obejmujące wiele kluczy zwykle nie są obsługiwane. Na przykład nie można wykonać przecięcia między dwoma zestawami, jeśli są one przechowywane w kluczach mapowanych do różnych instancji Redis.

  • Nie można używać transakcji Redis obejmujących wiele kluczy.

  • Partycjonowanie granulacji jest kluczem, więc nie jest możliwe podzielenie zestawu danych na fragmenty za pomocą jednego ogromnego klucza, takiego jak bardzo duży posortowany zestaw.

  • W przypadku korzystania z partycjonowania obsługa danych jest bardziej złożona. Na przykład musisz obsługiwać wiele plików RDB / AOF, a aby uzyskać kopię zapasową danych, musisz zagregować pliki trwałości z wielu instancji i hostów.

  • Dodawanie i usuwanie pojemności może być skomplikowane. Na przykład Redis Cluster obsługuje przeważnie przezroczyste równoważenie danych z możliwością dodawania i usuwania węzłów w czasie wykonywania. Jednak inne systemy, takie jak partycjonowanie po stronie klienta i serwery proxy, nie obsługują tej funkcji. Technika zwanaPresharding pomaga w tym zakresie.

Rodzaje partycjonowania

W Redis dostępne są dwa typy partycjonowania. Załóżmy, że mamy cztery instancje Redis, R0, R1, R2, R3 i wiele kluczy reprezentujących użytkowników, takich jak użytkownik: 1, użytkownik: 2, ... i tak dalej.

Podział zakresu

Partycjonowanie zakresu odbywa się poprzez mapowanie zakresów obiektów do określonych instancji Redis. Załóżmy, że w naszym przykładzie użytkownicy od ID 0 do ID 10000 przejdą do instancji R0, podczas gdy użytkownicy od ID 10001 do ID 20000 przejdą do instancji R1 i tak dalej.

Hash Partitioning

W tym typie partycjonowania funkcja skrótu (np. Funkcja modułu) jest używana do konwersji klucza na liczbę, a następnie dane są przechowywane w różnych instancjach Redis.

Zanim zaczniesz używać Redis w swoich programach Java, musisz upewnić się, że masz sterownik Redis Java i Java skonfigurowaną na komputerze. Możesz zapoznać się z naszym samouczkiem Java dotyczącym instalacji Java na swoim komputerze.

Instalacja

Zobaczmy teraz, jak skonfigurować sterownik Redis Java.

  • Musisz pobrać słoik ze ścieżki Download jedis.jar. Upewnij się, że pobierasz jego najnowszą wersję.

  • Musisz dołączyć rozszerzenie jedis.jar do swojej ścieżki klas.

Połącz się z serwerem Redis

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()); 
   } 
}

Teraz skompilujmy i uruchommy powyższy program, aby przetestować połączenie z serwerem Redis. Możesz zmienić ścieżkę zgodnie z wymaganiami. Zakładamy aktualną wersjęjedis.jar jest dostępny w bieżącej ścieżce.

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

Przykład ciągu Java w Redis

import redis.clients.jedis.Jedis; 

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

Teraz skompilujmy i uruchommy powyższy program.

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

Przykład listy Java Redis

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)); 
      } 
   } 
}

Teraz skompilujmy i uruchommy powyższy program.

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

Przykład kluczy Java w Redis

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)); 
      } 
   } 
}

Teraz skompilujmy i uruchommy powyższy program.

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

Zanim zaczniesz używać Redis w swoich programach PHP, upewnij się, że masz zainstalowany sterownik Redis PHP i PHP. Możesz sprawdzić samouczek PHP dotyczący instalacji PHP na swoim komputerze.

Instalacja

Teraz sprawdźmy, jak skonfigurować sterownik Redis PHP.

Musisz pobrać phpredis z repozytorium github https://github.com/nicolasff/phpredis. Po pobraniu wypakuj pliki do katalogu phpredis. W systemie Ubuntu zainstaluj następujące rozszerzenie.

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

Teraz skopiuj i wklej zawartość folderu „modules” do katalogu rozszerzeń PHP i dodaj następujące wiersze php.ini.

extension = redis.so

Teraz instalacja Redis PHP jest zakończona

Połącz się z serwerem Redis

<?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(); 
?>

Kiedy program zostanie wykonany, da następujący wynik.

Connection to server sucessfully 
Server is running: PONG

Przykład ciągu PHP Redis

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

Wykonanie powyższego programu da następujący wynik.

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

Przykład listy redis php

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

Wykonanie powyższego programu da następujący wynik.

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

Przykład kluczy PHP Redis

<?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); 
?>

Kiedy program zostanie wykonany, da następujący wynik.

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