redis
Verbinding maken met Redis via Python
Zoeken…
Invoering
Verbinding maken met Redis in Python vereist het gebruik van een clientbibliotheek. Er bestaan veel verschillende clientbibliotheken voor Python, maar redis-py is een van de meest populaire clients in gebruik.
Nadat u uw clientbibliotheek hebt geïnstalleerd, hebt u toegang tot Redis in uw toepassing door de juiste module te importeren, een verbinding tot stand te brengen en vervolgens een opdracht uit te voeren.
Opmerkingen
Om via Redis verbinding te maken met Python, moet u een client installeren. U kunt installeren met pip met behulp van:
pip install redis
dit zal redis-py installeren
Optioneel wilt u misschien hiredis-py installeren waarmee het parseren van protocolberichten wordt overgedragen aan de C hiredis-client. Dit kan in veel situaties een aanzienlijke prestatieverbetering opleveren. U kunt hiredis met pip installeren door het volgende uit te voeren:
pip install hiredis
Element toevoegen aan lijst
import redis
r = redis.StrictRedis(host='localhost', port=6379, db=0)
r.lpush('myqueue','myelement')
Velden toevoegen aan een hash
Er zijn twee hoofdfuncties in Redis (HSET en HMSET) voor het toevoegen van velden aan een hash-toets. Beide functies zijn beschikbaar in redis-py.
HSET gebruiken:
import redis
r = redis.StrictRedis(host='myserver', port=6379, db=0)
r.hset('my_key', 'field0', 'value0')
HMSET gebruiken:
import redis
r = redis.StrictRedis(host='myserver', port=6379, db=0)
r.hmset('my_key', {'field0': 'value0', 'field1':'value1', 'field2':'value2'}
Een verbinding met Redis opzetten
De redis-py client biedt twee klassen StrictRedis
en Redis
om een eenvoudige verbinding met een Redis gegevensbestand op te zetten. De Redis
klasse is bedoeld voor achterwaartse compatibiliteit en nieuwe projecten moeten de StrictRedis
klasse gebruiken.
Een van de aanbevolen manieren om een verbinding tot stand te brengen, is om de verbindingsparameters in een woordenboek te definiëren en het woordenboek door te geven aan de StrictRedis
constructor met behulp van de syntaxis **
.
conn_params = {
"host": "myredis.somedomain.com",
"port": 6379,
"password": "sekret",
"db": 0
}
r = redis.StrictRedis(**config)
Een transactie aanmaken
U kunt een transactie tot stand brengen door de pipeline
methode op de StrictRedis
aan te StrictRedis
. Redis-opdrachten die tegen de transactie worden uitgevoerd, worden in een enkel blok uitgevoerd.
# defaults to transaction=True
tx = r.pipeline()
tx.hincrbyfloat(debit_account_key, 'balance', -amount)
tx.hincrbyfloat(credit_account_key, 'balance', amount)
tx.execute()
Opdrachten direct uitvoeren
Redis-py biedt de methode execute_command
om execute_command
bewerkingen rechtstreeks op te roepen. Deze functionaliteit kan worden gebruikt om toegang te krijgen tot modules die mogelijk geen ondersteunde interface in de redis-py-client hebben. U kunt bijvoorbeeld de opdracht execute_command
om alle modules weer te geven die in een Redis-server zijn geladen:
r.execute_command('MODULE', 'LIST')