Dans ce petit tuto , nous allons explorer la méthode pour connecter un programme en Python avec Redis
Configuration
Pour y arriver nous allons utiliser la librairie Redis-Py. Elle est très simple et très facile à utiliser.
Elle est disponible aussi comme project open source sur Github.
Installation
Pour installer redis-py, faite:
Verifier l'installation
$ redis --version
redis 20.0.13 from /home/corneilleedi/.local/lib/python3.7/site-packages/redis/__init__.py
Connection
Avant tout chose, il va falloir importer Redis et nous connecter à la base de donnée
import redis
db = redis.StrictRedis(host="localhost", port=6379, db=0)
Dans cet exemple, la connection à la base de donnée est initialisée avec les paramètres suivants:
- host : localhost (127.0.0.1)
- port : 6379 (port par défaut de Redis)
- db : 0 (la base de donnée 0 dans notre base de donnée Redis)
Il est aussi possible d'utiliser un URI sour le format
[METHODE_DE_CONNECTION]:[HOST]@[PASSWORD]:[PORT]/[DATABASE]
- METHODE_DE_CONNECTION: il s'agit d'un suffixe précédant tous les URI Redis spécifiant comment vous souhaitez vous connecter à votre instance. redis:// est une connexion standard, rediss:// (double S) tente de se connecter via SSL, redis-socket:// est réservé aux sockets de domaine Unix et redis-sentinel:// est un type de connexion pour les disponibilité Redis clusters.
- HOST: URL ou IP de votre instance Redis. Si vous utilisez une instance hébergée dans le cloud, il est probable que cela ressemble à une adresse AWS EC2 ou DigitalOcean Droplet.
- PASSWORD: Le mot de passe de votre DB (6379 par defaut).
- PORT: le port sous lequel tourne Redis.
- DATABASE: le numero de la base de donnée que vous visé. Generalement mis à 0
import redis
db = redis.from_url(url= 'redis://localhost@loopbin:6379/0')
Utilisation
Maintenant que notre code a acces à Redis, nous pouvons commencer à nous amuser avec.
Quelques methodes tres utiles:
- db.set(key, value): ajoute un nouvel élement dans la base de donnée avec comme clé key et value comme valeur.
- db.get(key): recupere la valeur de la clé key.
- db.keys(): retourne la liste de toutes les clés dans la db.
- db.delete(key): supprime l'élement ayant la clé key.
- db.incr(key): incremente la valeur de la clé key.
- db.psetex(key, time, value): ajoute un nouvel élement dans la base de donnée avec comme clé key et value comme valeur avec un temps d'expiration time en milliseconde .
- db.expire(key, time): ajoute un temps d'expiration time sur l'élement ayant la clé key.
- db.ttl(key): retour le nombre de seconde avec expiration de l'élement ayant la clé key.
Encore plus de méthode dans la documentation:
Jetons un coup d'oeuil a un peu de code.
import redis
db = redis.from_url(url= 'redis://localhost:6379/0')
db.set('name', 'John Doe')
n = db.get('name')
print(n)
Par defaut, Redis retournera une message de type string byte. Pour y remedier, il suffit de passer des arguments lors de la connection
db = redis.from_url(url= 'redis://localhost:6379/0',charset="utf-8",decode_responses=True)