Heim > Datenbank > Redis > Hauptteil

So verwenden Sie Django Redis

王林
Freigeben: 2023-06-03 14:53:13
nach vorne
1244 Leute haben es durchsucht

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-Verbindungunix://[[Benutzername]:[Passwort]]@/path/to/socket.sock?db=0
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-Verbindungszeitlimiteinstellung
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "default"
Nach dem Login kopieren
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.cache
CACHES = {
    "default": {
        # ...
        "OPTIONS": {
            "SOCKET_CONNECT_TIMEOUT": 5,  # 连接redis超时时间,单位为秒
            "SOCKET_TIMEOUT": 5,  # redis读写操作超时时间,单位为秒
        }
    }
}
Nach dem Login kopieren
from django.core.cache import cache

cache.set("name", "冰冷的希望", timeout=None)
print(cache.get("name"))
Nach dem Login kopieren
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
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
Die 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 Redis4. Verwenden Sie Redis4.1 Verwenden Sie das Standard-Redis
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 sollenBitte 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
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!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage