Heim  >  Artikel  >  Datenbank  >  Anwendung von Redis in Python

Anwendung von Redis in Python

PHPz
PHPzOriginal
2023-06-20 16:32:251203Durchsuche

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

  1. Laden Sie die Installationsdatei herunter
    Die offizielle Redis-Website bietet Quellcode und eine vorkompilierte Version. Wenn Sie die vorkompilierte Version wählen, können Sie die neueste Version direkt herunterladen.
  2. Entpacken und kompilieren
    Entpacken Sie es nach Abschluss des Downloads in das angegebene Verzeichnis. Verwenden Sie den Befehl make, um Redis in ausführbare Dateien, Startskripts usw. zu kompilieren. Im Linux-System können Sie den folgenden Befehl verwenden:

$ tar xzf redis-5.0.3.tar.gz
$ cd redis-5.0.3
$ make

  1. Starten Sie den Redis-Server
    Nachdem die Kompilierung abgeschlossen ist, Sie können redis verwenden. Der Befehl -server startet den Redis-Server. Der Standard-Abhörport ist 6379:

$ src/redis-server

  1. Testen Sie die Verbindung
    Sie können den Befehl redis-cli verwenden, um eine Verbindung zum Redis-Server herzustellen für den Betrieb. Verwenden Sie beispielsweise den SET-Befehl, um ein Schlüssel-Wert-Paar festzulegen:

$ 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

  1. Mit dem Redis-Server verbinden
    Zunächst müssen Sie ein Redis-Objekt erstellen, um eine Verbindung zum Redis-Server herzustellen. Sie können den folgenden Code verwenden:

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.

  1. Datenoperation
    Verwenden Sie Redis-Objekte zum Festlegen, Abrufen und Löschen von Schlüssel-Wert-Paaren und anderen Vorgängen. Zum Beispiel:

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.

  1. Batch-Betrieb
    Um die Effizienz zu verbessern, unterstützt Redis Batch-Betrieb. Mithilfe der Pipeline können mehrere Vorgänge gepackt und an den Redis-Server gesendet werden, wodurch Netzwerk-Overhead und Latenz reduziert werden. Zum Beispiel:

pipe = rds.pipeline()
pipe.set('key1', 'value1')
pipe.set('key2', 'value2')
pipe.set('key3', 'value3 ' )
pipe.execute()

  1. Pub/Sub-Modus
    Redis bietet einen Publish/Subscribe-Modus zum Übertragen von Nachrichten. Die Python Redis-Clientbibliothek stellt auch entsprechende APIs bereit. Zum Beispiel:

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

  1. Caching
    Mit der Python Redis-Clientbibliothek können häufig verwendete Daten zwischengespeichert und die Reaktionsgeschwindigkeit von Webanwendungen beschleunigt werden. Zum Beispiel:

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.

  1. Verteilte Sperre
    Verteilte Sperre ist ein Synchronisationsmechanismus, der verwendet wird, um Ressourcenkonkurrenz zu vermeiden, wenn mehrere Prozesse/Threads/Knoten zusammenarbeiten. Die Python Redis-Clientbibliothek kann zum Implementieren verteilter Sperren verwendet werden. Zum Beispiel:

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn