Python >> Tutoriel Python >  >> Python

Comment utiliser Redis avec Python 3 et redis-py sur Ubuntu 16.04

Redis est un magasin de données NoSQL à paire clé-valeur en mémoire souvent utilisé pour les sessions d'application Web, les données transitoires et en tant que courtier pour les files d'attente de tâches. redis-py est une bibliothèque de codes Python commune pour interagir avec Redis. Apprenons comment faire fonctionner Redis sur Ubuntu, puis commençons à l'utiliser dans une simple application Python.

Outils dont nous avons besoin

Ce tutoriel est testé avec Python 3.5 mais Python 2 ou 3 devrait fonctionner pour tout ce qui est écrit ici. Assurez-vous simplement qu'une version est installée sur votre système en accédant au terminal et en tapant python --version . Outre Python lui-même, voici le logiciel que nous allons utiliser tout au long de cet article :

  • Ubuntu 16.04 (ces instructions devraient également fonctionner correctement avec les versions antérieures d'Ubuntu)
  • pip et virtualenv pour gérer la dépendance de l'application dis-py
  • Redis
  • redis-py

Si vous ne savez pas comment installer pip et virtualenv, passez en revue les premières étapes du guide de configuration de Python 3, Flask et Green Unicorn sur Ubuntu 16.04 LTS.

Installer Redis

Il existe plusieurs façons d'installer Redis, telles que le téléchargement et la compilation à partir de la source. Cependant, sur Ubuntu, nous pouvons installer un package système via apt . L'avantage de cette méthode est que le apt le processus se chargera d'installer redis-server en tant que service système. Ouvrez le terminal et lancez la commande suivante :

sudo apt-get install redis-server

Entrez votre sudo mot de passe et lorsque vous êtes invité à installer le nouveau package, entrez "oui".

Après quelques instants, le téléchargement et le traitement devraient être terminés et vous serez de retour à l'invite.

Redis est maintenant installé et le serveur Redis s'exécute en arrière-plan en tant que service système. Même si nous avons installé le redis-server package, l'installation est également fournie avec le client de ligne de commande Redis. Le client est utile pour se connecter directement au serveur Redis sans aucun code Python. Donnez redis-cli essayez en tapant ceci dans l'invite de commande :

redis-cli

Le client Redis se connecte au serveur localhost et donne une nouvelle invite pour montrer qu'il est prêt pour les commandes :

Essayez l'invite en utilisant des commandes Redis telles que keys * ou set a 1 .La liste complète des commandes Redis est fournie dans la documentation du projet.

Virtualenv et installer redis-py

Nous devons comprendre notre python3 emplacement, puis créez un virtualenv, activez le virtualenv puis installez redis-py avec pip .Déterminez votre python3 emplacement exécutable avec le which commande.

which python3

Vous verrez une sortie comme la capture d'écran suivante.

Créez un nouvel environnement virtuel dans votre répertoire personnel ou à l'endroit où vous stockez les environnements virtuels de votre projet. Spécifiez le chemin complet vers votre python3 installation.

# specify the system python3 installation
virtualenv --python=/usr/bin/python3 venvs/redistest

Activez l'environnement virtuel.

source ~/venvs/redistest/bin/activate

Ensuite, nous pouvons installer le package Python redis-py à partir de PyPI en utilisant le pip commande.

pip install redis

Très bien, maintenant il est installé dans notre virtualenv. Écrivons du code Python simple pour essayer redis-py !

Travailler avec Redis à partir de Python

Lancez le Python REPL avec le python ou python3 commande. Vous pouvez également écrire le code suivant dans un fichier Python tel que "testredis.py" puis l'exécuter avec python testredis.py .

import redis
# create a connection to the localhost Redis server instance, by
# default it runs on port 6379
redis_db = redis.StrictRedis(host="localhost", port=6379, db=0)
# see what keys are in Redis
redis_db.keys()
# output for keys() should be an empty list "[]"
redis_db.set('full stack', 'python')
# output should be "True"
redis_db.keys()
# now we have one key so the output will be "[b'full stack']"
redis_db.get('full stack')
# output is "b'python'", the key and value still exist in Redis
redis_db.incr('twilio')
# output is "1", we just incremented even though the key did not
# previously exist
redis_db.get('twilio')
# output is "b'1'" again, since we just obtained the value from
# the existing key
redis_db.delete('twilio')
# output is "1" because the command was successful
redis_db.get('twilio')
# nothing is returned because the key and value no longer exist

Il s'agit d'une introduction rapide à certaines commandes Redis couramment utilisées invoquées par leurs liaisons Python via la bibliothèque redis-py. Consultez la documentation officielle de dis-py pour en savoir plus sur la liste de commandes complète que vous pouvez utiliser pour créer, lire, modifier et supprimer des clés et des valeurs dans Redis.

Des questions? Tweetez @fullstackpythonou publiez un message sur la page Facebook de Full Stack Python.Vous voyez quelque chose qui ne va pas dans ce message ? La source de cette page sur GitHuband soumet une pull request.