redis
Connessione a redis con Python
Ricerca…
introduzione
La connessione a Redis in Python richiede l'uso di una libreria client. Esistono molte librerie client diverse per Python, ma redis-py è uno dei client più popolari in uso.
Una volta installata la libreria client, è possibile accedere a Redis nell'applicazione importando il modulo appropriato, stabilendo una connessione e quindi eseguendo un comando.
Osservazioni
Per connetterti su redis con python devi installare un client . Puoi installare con pip usando:
pip install redis
questo installerà redis-py
Facoltativamente, è possibile installare hiredis-py che deleghi l'analisi dei messaggi di protocollo al client C hiredis. Ciò può fornire un significativo miglioramento delle prestazioni in molte situazioni. È possibile installare hiredis con pip eseguendo:
pip install hiredis
Aggiungi un elemento alla lista
import redis
r = redis.StrictRedis(host='localhost', port=6379, db=0)
r.lpush('myqueue','myelement')
Aggiunta di campi a un hash
Ci sono due funzioni principali in Redis (HSET e HMSET) per aggiungere campi a una chiave hash. Entrambe le funzioni sono disponibili in redis-py.
Utilizzo di HSET:
import redis
r = redis.StrictRedis(host='myserver', port=6379, db=0)
r.hset('my_key', 'field0', 'value0')
Utilizzando HMSET:
import redis
r = redis.StrictRedis(host='myserver', port=6379, db=0)
r.hmset('my_key', {'field0': 'value0', 'field1':'value1', 'field2':'value2'}
Impostazione di una connessione a Redis
Il client redis-py fornisce due classi StrictRedis
e Redis
per stabilire una connessione di base a un database Redis. La classe Redis
viene fornita per la compatibilità con le versioni precedenti e i nuovi progetti devono utilizzare la classe StrictRedis
.
Uno dei modi consigliati per stabilire una connessione consiste nel definire i parametri di connessione in un dizionario e passare il dizionario al costruttore StrictRedis
utilizzando la sintassi **
.
conn_params = {
"host": "myredis.somedomain.com",
"port": 6379,
"password": "sekret",
"db": 0
}
r = redis.StrictRedis(**config)
Creare una transazione
È possibile stabilire una transazione chiamando il metodo pipeline
su StrictRedis
. I comandi redis eseguiti contro la transazione vengono eseguiti in un unico blocco.
# defaults to transaction=True
tx = r.pipeline()
tx.hincrbyfloat(debit_account_key, 'balance', -amount)
tx.hincrbyfloat(credit_account_key, 'balance', amount)
tx.execute()
Esecuzione diretta dei comandi
Redis-py fornisce il metodo execute_command
per richiamare direttamente le operazioni Redis. Questa funzionalità può essere utilizzata per accedere a tutti i moduli che potrebbero non avere un'interfaccia supportata nel client redis-py. Ad esempio, è possibile utilizzare execute_command
per elencare tutti i moduli caricati in un server Redis:
r.execute_command('MODULE', 'LIST')