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