redis
Łączenie się z redis za pomocą Pythona
Szukaj…
Wprowadzenie
Łączenie się z Redis w Pythonie wymaga użycia biblioteki klienta. Istnieje wiele różnych bibliotek klienta dla Pythona, ale redis-py jest jednym z najpopularniejszych używanych klientów.
Po zainstalowaniu biblioteki klienta można uzyskać dostęp do Redis w aplikacji, importując odpowiedni moduł, nawiązując połączenie, a następnie wykonując polecenie.
Uwagi
Aby połączyć się z Redis za pomocą Pythona, musisz zainstalować klienta . Możesz zainstalować za pomocą pipa, używając:
pip install redis
to zainstaluje redis-py
Opcjonalnie możesz zainstalować hiredis-py, który przekazuje parsowanie komunikatów protokołu klientowi C. hiredis. Może to zapewnić znaczną poprawę wydajności w wielu sytuacjach. Możesz zainstalować hiredis z pipem, wykonując:
pip install hiredis
Dodaj element do listy
import redis
r = redis.StrictRedis(host='localhost', port=6379, db=0)
r.lpush('myqueue','myelement')
Dodawanie pól do skrótu
Istnieją dwie główne funkcje w Redis (HSET i HMSET) do dodawania pól do klucza skrótu. Obie funkcje są dostępne w wersji redis-py.
Za pomocą HSET:
import redis
r = redis.StrictRedis(host='myserver', port=6379, db=0)
r.hset('my_key', 'field0', 'value0')
Korzystanie z HMSET:
import redis
r = redis.StrictRedis(host='myserver', port=6379, db=0)
r.hmset('my_key', {'field0': 'value0', 'field1':'value1', 'field2':'value2'}
Konfigurowanie połączenia z Redis
Klient redis-py udostępnia dwie klasy StrictRedis
i Redis
celu ustanowienia podstawowego połączenia z bazą danych Redis. Klasa Redis
zapewnia kompatybilność wsteczną, a nowe projekty powinny korzystać z klasy StrictRedis
.
Jednym z zalecanych sposobów ustanowienia połączenia jest zdefiniowanie parametrów połączenia w słowniku i przekazanie słownika do konstruktora StrictRedis
przy użyciu składni **
.
conn_params = {
"host": "myredis.somedomain.com",
"port": 6379,
"password": "sekret",
"db": 0
}
r = redis.StrictRedis(**config)
Tworzenie transakcji
Możesz ustanowić transakcję, wywołując metodę pipeline
na StrictRedis
. Polecenia Redis wykonane dla transakcji są wykonywane w jednym bloku.
# defaults to transaction=True
tx = r.pipeline()
tx.hincrbyfloat(debit_account_key, 'balance', -amount)
tx.hincrbyfloat(credit_account_key, 'balance', amount)
tx.execute()
Wykonywanie poleceń bezpośrednio
Redis-py zapewnia metodę execute_command
do bezpośredniego wywoływania operacji Redis. Z tej funkcji można uzyskać dostęp do modułów, które mogą nie mieć obsługiwanego interfejsu w kliencie redis-py. Na przykład możesz użyć polecenia execute_command
aby wyświetlić listę wszystkich modułów załadowanych na serwer Redis:
r.execute_command('MODULE', 'LIST')