1. Beschreibung
Redis spielt in allen Aspekten eine große Rolle. Wenn Sie Django verwenden, gibt es eine Redis-Bibliothek, die speziell für Django entwickelt wurde
pip install django-redis
Nach dem Login kopieren
3. Konfiguration
3.1 Redis konfigurieren
Öffnen Sie die Django-Konfigurationsdatei, z. B. Setting.py, und legen Sie das CACHES-Element darin fest Alias (Alias), der „Standard“ oben ist der Alias. Sie können über verschiedene Aliase eine Verbindung zu verschiedenen Redis-Datenbanken herstellen.
LOCATION sind die Verbindungsinformationen, einschließlich des IP-Port-Benutzerkennworts usw. Wenn kein Benutzerkennwort erforderlich ist, Sie können es weglassen. django- Redis unterstützt drei Verbindungsprotokolle, wie folgt: Protokoll: Beschreibung: Beispiel: Redis: //: Gewöhnliche TCP-Socket-Verbindung: Redis: // [Benutzername]: [Passwort]]@localhost:6379/0
rediss
SSL TCP-Socket-Verbindungrediss://[[Benutzername]:[Passwort]]@localhost:6379/0 | | rediss:// | Unix-Domain-Socket-Verbindung
unix://[[Benutzername]:[Passwort]]@/path/to/socket.sock?db=0 | 3.2 Verwenden Sie Redis, um Sitzungen zu speichern | Djangos Standardsitzung wird in der SQL-Datenbank gespeichert, aber wir alle wissen, dass normale Daten auf der Festplatte gespeichert werden, was nicht so schnell ist. Wenn Sie sie so ändern möchten, dass sie in Redis gespeichert werden, müssen Sie sie nur konfigurieren in der Konfigurationsdatei Nur ein Klick | CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/1",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
}
}
Nach dem Login kopieren
3.3 Redis-VerbindungszeitlimiteinstellungDie Anzahl der Sekunden für das Verbindungszeitlimit kann im Konfigurationselement angegeben werden. SOCKET_CONNECT_TIMEOUT stellt das Zeitlimit für die Verbindung zu Redis dar, und SOCKET_TIMEOUT stellt das Zeitlimit für das Lesen und Schreiben dar Operationen mit Redis | SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "default"
Nach dem Login kopieren
4. Verwenden Sie Redis | 4.1 Verwenden Sie das Standard-Redis |
Wenn Sie das Standard-Redis verwenden möchten, d. h. das Redis mit dem in der Konfigurationsdatei festgelegten Alias „default“, können Sie sich auf das beziehen Cache in django.core.cacheCACHES = {
"default": {
# ...
"OPTIONS": {
"SOCKET_CONNECT_TIMEOUT": 5, # 连接redis超时时间,单位为秒
"SOCKET_TIMEOUT": 5, # redis读写操作超时时间,单位为秒
}
}
}
Nach dem Login kopieren
4.2 Verwenden Sie das angegebene Redis (Native Redis) | Wenn Sie mehrere Redis-Verbindungen in die Konfigurationsdatei schreiben, können Sie über Aliase angeben, welche Redis verwendet werden sollen | from django.core.cache import cache
cache.set("name", "冰冷的希望", timeout=None)
print(cache.get("name"))
Nach dem Login kopieren
Bitte beachten Sie, dass der Client erhalten hat über get_redis_connection() ist der native Redis-Client, obwohl er grundsätzlich alle nativen Redis-Befehle unterstützt, aber die zurückgegebenen Daten vom Byte-Typ sind, müssen Sie sie selbst dekodieren |
5Der Vorteil der Verwendung eines Der Verbindungspool besteht darin, dass Sie keine Verbindungsobjekte verwalten müssen, sondern automatisch einige Verbindungsobjekte erstellen und versuchen, sie wiederholt zu verwenden, sodass die Leistung relativ besser ist
5.1 Konfigurieren Sie den Verbindungspool
Um zuerst den Verbindungspool zu verwenden Schreiben Sie die maximale Anzahl von Verbindungen im Verbindungspool in die Django-Konfigurationsdatei Informationen darüber, welche Verbindungsinstanzen erstellt werden, können jedoch über das _created_connections-Attribut von „connection_pool“ überprüfen, wie viele Verbindungsinstanzen derzeit erstellt werden. 5.3 Benutzerdefinierter Verbindungspool. Die Standardverbindungsklasse von Django-redis ist „DefaultClient“. , Sie können eine eigene neue Klasse erstellen und ConnectionPool erben
from django_redis import get_redis_connection
redis_conn = get_redis_connection("chain_info")
redis_conn.set("name", "icy_hope")
print(redis_conn.get("name"))
Nach dem Login kopieren
Nachdem Sie diese Klasse haben, müssen Sie sie noch in der Django-Konfigurationsdatei angeben
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
...
"OPTIONS": {
"CONNECTION_POOL_KWARGS": {"max_connections": 100}
}
}
}
Nach dem Login kopieren
Das obige ist der detaillierte Inhalt vonSo verwenden Sie Django Redis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!