Maison > Article > base de données > Application de Redis en Python
Redis est un système de stockage clé-valeur open source et hautes performances, couramment utilisé dans le cache, la file d'attente de messages, le compteur et d'autres scénarios. En tant que langage de script concis et efficace, Python est également largement utilisé dans le traitement en arrière-plan du Web, l'analyse et l'exploration de données, l'apprentissage automatique, l'intelligence artificielle et d'autres domaines. Cet article discutera de l'application de Redis en Python, y compris l'installation de Redis, l'utilisation du module client Python Redis et des cas d'application spécifiques.
1. Installation de Redis
$ tar xzf redis-5.0.3.tar.gz
$ cd redis-5.0.3
$ make
127.0.0.1:6379> GET mykey
"Bonjour Redis"
2. Utilisation du module client Python Redis
Connectez-vous au serveur Redis
Vous devez d'abord créer un objet Redis pour connectez-vous au serveur Redis. Vous pouvez utiliser le code suivant :À l'aide d'objets Redis, vous pouvez définir, obtenir, supprimer des paires clé-valeur et d'autres opérations. Par exemple :
Parmi eux, la méthode set est utilisée pour définir la paire clé-valeur et la méthode get est utilisée pour obtenir la paire clé-valeur. Il convient de noter que le type de données renvoyé par la méthode get est en octets et doit être converti en chaîne à l'aide de la méthode decode.
Afin d'améliorer l'efficacité, Redis prend en charge les opérations par lots. Grâce au pipeline, plusieurs opérations peuvent être regroupées et envoyées au serveur Redis, réduisant ainsi la surcharge et la latence du réseau. Par exemple :
pipe.execute()
Pub/Sub mode
Redis fournit un modèle de publication/abonnement pour la transmission de messages. La bibliothèque client Python Redis fournit également les API correspondantes. Par exemple :
time.sleep(1) # Attendez 1 seconde
msg = pubsub.get_message()
print(msg) # Sortie : {'type': 'message ' , 'channel' : b'channel', 'data' : b'Bonjour'}
Parmi eux, la méthode d'abonnement signifie s'abonner à une chaîne et la méthode de publication signifie publier un message. Utilisez la méthode get_message pour obtenir le message.
3. Cas d'application spécifiques
La bibliothèque client Python Redis peut être utilisée pour mettre en cache les données couramment utilisées et accélérer la vitesse de réponse de applications Web. Par exemple :
def __init__(self): self.rds = redis.Redis(host='localhost', port=6379, db=0) def get(self, key): val = self.rds.get(key) if val: return val.decode() return None def set(self, key, val, ttl=60): self.rds.set(key, val, ex=ttl)
cache = Cache()
val = cache .get('key')
if not val:
# 从数据库中查询数据 val = 'value' cache.set('key', val, ttl=60)
print(val)
La classe Cache encapsule l'implémentation du cache Redis, en utilisant get et Les méthodes set peuvent obtenir ou définir des données de cache. Interrogez le cache avant d'obtenir les données. Si elles n'existent pas dans le cache, lisez les données de la base de données et mettez-les en cache.
Le verrouillage distribué est un mécanisme de synchronisation utilisé pour éviter la concurrence des ressources lorsque plusieurs processus/threads/nœuds collaborent. La bibliothèque client Python Redis peut être utilisée pour implémenter des verrous distribués. Par exemple :
def __init__(self): self.rds = redis.Redis(host='localhost', port=6379, db=0) self.locked = False def acquire(self, lockname, ttl=60): identifier = str(time.time()) self.locked = self.rds.setnx(lockname, identifier) if self.locked: self.rds.expire(lockname, ttl) return self.locked def release(self, lockname): if self.locked: self.rds.delete(lockname)
lock = Lock()
if lock . acquire('mylock'):
# 处理业务逻辑... lock.release('mylock')La classe Lock encapsule l'implémentation de verrous distribués, et les méthodes d'acquisition et de libération peuvent être utilisées pour acquérir ou libérer des verrous. Lors de l'acquisition d'un verrou, renvoyez False si le verrou est déjà occupé ; si le verrou n'est pas occupé, acquérez le verrou et définissez le délai d'expiration.
Pour résumer, Redis est largement utilisé en Python et peut être utilisé dans le cache, les verrous distribués, les files d'attente de messages, les compteurs et d'autres scénarios. La bibliothèque client Python Redis fournit également une API simple et facile à utiliser pour des opérations pratiques sur les données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!