[3] Redis – Podstawowe operacje dla bazy danych

28 stycznia 2022 Wyłączono przez Adam [zicherka] Nogły

To jest podstawowe użycie Redis z programem klienckim [redis-cli]. Poniższe przykłady są podstawowe, możesz zobaczyć więcej poleceń na oficjalnej stronie: https://redis.io/commands

[1] Podstawowe operacje z użyciem kluczy [key].

[root@vlsr01 ~]# redis-cli
127.0.0.1:6379> auth TajneHaslo
OK

#ustaw wartość klucza
127.0.0.1:6379> set key01 value01
OK

#pobierz wartość klucza
127.0.0.1:6379> get key01
"value01"

#skasuj klucz
127.0.0.1:6379> del key01
(integer) 1

#sprawdź istnienie klucza (1 – klucz istnieje)
127.0.0.1:6379> exists key01
(integer) 0

#ustaw wartość klucza, jeśli klucz nie istnieje
#wartość 0 oznacza, że klucz istnieje i nie ustawiono wartości
127.0.0.1:6379> setnx key01 value02
(integer) 1

#ustaw wartość klucza z czasem życia 60 sekund
127.0.0.1:6379> setex key01 60 value01
OK

#ustaw czas życia istniejącego klucza
127.0.0.1:6379> expire key01 30
(integer) 1

#dodaj dane do klucza
127.0.0.1:6379> append key01 value02
(integer) 15

#pobierz pod-wartość klucza [Key] [Start] [End]
127.0.0.1:6379> substr key01 0 3
"valu"

127.0.0.1:6379> set key02 1
OK
#zwiększ wartość klucza (inkrementacja)
127.0.0.1:6379> incr key02
(integer) 2

#wyspecyfikowana wartość inkrementacji
127.0.0.1:6379> incrby key02 100
(integer) 102

#dekrementacja wartości klucza
127.0.0.1:6379> decr key02
(integer) 101

#dekrementacja wartości klucza o wyspecyfikowaną wartość
127.0.0.1:6379> decrby key02 51
(integer) 50

#ustaw wartości kilku kluczy
127.0.0.1:6379> mset key01 value01 key02 value02 key03 value03
OK

#pobierz niektóre wartości kluczy
127.0.0.1:6379> mget key01 key02 key03
1) "value01"
2) "value02"
3) "value03"

#zmień nazwę istniejącego klucza
127.0.0.1:6379> rename key03 key04
OK
127.0.0.1:6379> mget key01 key02 key03 key04
1) "value01"
2) "value02"
3) (nil)
4) "value03"

# zmień nazwę istniejącego klucza, ale jeśli klucz o zmienionej nazwie już istnieje, polecenie nie jest uruchamiane
127.0.0.1:6379> renamenx key01 key02
(integer) 0
127.0.0.1:6379> mget key01 key02 key03 key04
1) "value01"
2) "value02"
3) (nil)
4) "value03"

#pobierz liczbę kluczy z aktualnej bazy danych
127.0.0.1:6379> dbsize
(integer) 3

#przenieś klucz do innej bazy danych
127.0.0.1:6379> move key04 1
(integer) 1
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> get key04
"value03"

#skasuj wszystkie klucze w aktualnej bazie danych
127.0.0.1:6379> flushdb
OK

#skasuj wszystkie klucze we wszystkich bazach danych
127.0.0.1:6379> flushall
OK
127.0.0.1:6379> quit

#operacje z wykorzystaniem stdout
[root@vlsr01 ~]# echo 'test_words' | redis-cli -a TajneHasło --no-auth-warning -x set key01
OK
[root@vlsr01 ~]# redis-cli -a TajneHasło --no-auth-warning get key01
"test_words\n"

[2] Możliwe jest użycie operacji CAS (sprawdź i ustaw) z poleceniem watch na Redis. Jeśli inny proces zmienił wartość klucza między wykonaniami, zmiana nie zostanie zastosowana do klucza.

#obserwujemy klucz
127.0.0.1:6379> watch key01
OK
127.0.0.1:6379> get key01
"test_words\n"
127.0.0.1:6379> multi
OK
127.0.0.1:6379> set key01 value02
QUEUED
127.0.0.1:6379> exec
1) OK