Redis ist ein Open-Source-Hochleistungs-Schlüsselwertspeichersystem, das häufig in Cache-, Nachrichtenwarteschlangen-, Zähler- und anderen Szenarien verwendet wird. Als prägnante und effiziente Skriptsprache wird Python auch häufig in der Web-Hintergrundverarbeitung, Datenanalyse und -gewinnung, maschinellem Lernen, künstlicher Intelligenz und anderen Bereichen eingesetzt. In diesem Artikel wird die Anwendung von Redis in Python erläutert, einschließlich der Installation von Redis, der Verwendung des Python Redis-Clientmoduls und spezifischer Anwendungsfälle.
1. Redis-Installation
$ tar xzf redis-5.0.3.tar.gz
$ cd redis-5.0.3
$ make
$ src/redis-server
$ src/redis-cli
127.0.0.1:6379> SET mykey „Hello Redis“
OK
127.0.0.1:6379> GET mykey
“ Hallo Redis“
2. Verwendung des Python Redis-Clientmoduls
Um die Verwendung von Redis in Python zu erleichtern, können Sie das Redis-Py-Modul als Redis-Clientbibliothek verwenden. Sie können den pip-Befehl zum Installieren verwenden:
$ pip install redis
import redis
rds = redis.Redis(host='localhost', port=6379, db=0)
wobei host und port die Adresse bzw. Portnummer des Redis-Servers sind , und db bedeutet Redis Die Nummer der Datenbank, der Standardwert ist 0.
rds.set('name', 'Alice')
name = rds.get('name')
print(name) # Ausgabe: b'Alice'
Unter ihnen ist die Set-Methode Wird zum Festlegen von Schlüssel-Wert-Paaren verwendet. Die get-Methode wird zum Abrufen von Schlüssel-Wert-Paaren verwendet. Es ist zu beachten, dass der von der get-Methode zurückgegebene Datentyp Bytes ist und mithilfe der decode-Methode in eine Zeichenfolge konvertiert werden muss.
pipe = rds.pipeline()
pipe.set('key1', 'value1')
pipe.set('key2', 'value2')
pipe.set('key3', 'value3 ' )
pipe.execute()
import time
pubsub = rds.pubsub()
pubsub.subscribe('channel')
rds.publish('channel', 'Hello')
time.sleep(1) # 1 Sekunde warten
msg = pubsub.get_message()
print(msg) # Ausgabe: {'type': 'message', 'channel': b'channel', 'data': b'Hello'}
Unter ihnen das Abonnieren Die Methode stellt das Abonnement eines Kanals dar. Die Veröffentlichungsmethode bedeutet das Veröffentlichen einer Nachricht. Verwenden Sie die Methode get_message, um die Nachricht abzurufen.
3. Spezifische Anwendungsfälle
import time
import redis
class Cache:
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)
where Cache Die Klasse kapselt die Implementierung des Redis-Cache und verwendet die Methoden get und set, um Cache-Daten abzurufen oder festzulegen. Fragen Sie den Cache ab, bevor Sie die Daten abrufen. Wenn sie nicht im Cache vorhanden sind, lesen Sie die Daten aus der Datenbank und speichern Sie sie im Cache.
import time
import redis
class Lock:
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')
Die Lock-Klasse kapselt die Implementierung verteilter Sperren mithilfe von Acquire und Die Freigabemethode kann die Sperre erwerben oder freigeben. Wenn Sie eine Sperre erwerben, geben Sie „False“ zurück, wenn die Sperre bereits belegt ist. Wenn die Sperre nicht belegt ist, erwerben Sie die Sperre und legen Sie die Ablaufzeit fest.
Zusammenfassend ist Redis in Python weit verbreitet und kann in Caches, verteilten Sperren, Nachrichtenwarteschlangen, Zählern und anderen Szenarien verwendet werden. Die Python Redis-Clientbibliothek bietet außerdem eine einfache und benutzerfreundliche API für praktische Datenoperationen.
Das obige ist der detaillierte Inhalt vonAnwendung von Redis in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!