[3] Redis – Podstawowe operacje dla bazy danych
28 stycznia 2022To 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