Redis はキャッシュ データベースとしてあらゆる面で大きな役割を果たします。Python は Redis の操作をサポートしています。Django を使用する場合は、Django 用に特別に設計された Redis ライブラリ、つまり django- があります。 redis
pip install django-redis
Django 構成ファイル (setting.py など) を開き、CACHES を設定します。その中のItem
CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://127.0.0.1:6379/1", "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", } } }
複数のredis接続情報を1つのCACHEに設定できます。それぞれに独自のエイリアス(alias)があります。上記の「デフォルト」はエイリアスです。その際、異なるredisに接続できます異なるエイリアスによるデータベース
LOCATION は、IP ポートのユーザー パスワードなどを含む接続情報です。ユーザー パスワードが必要ない場合は、省略できます。django-redis は、次の 3 つの接続プロトコルをサポートします。
プロトコル | 説明 | 例 |
---|---|---|
通常の TCP スイート インターフェイス接続 | #redis://[[ユーザー名]:[パスワード]]@localhost:6379/0 | |
SSL モード TCP ソケット接続 | rediss://[[ユーザー名]:[パスワード]]@localhost:6379/0 | |
Unix ドメイン ソケット接続 | unix://[[ユーザー名]:[パスワード]]@/path/to/socket.sock?db=0 |
SESSION_ENGINE = "django.contrib.sessions.backends.cache" SESSION_CACHE_ALIAS = "default"
3.3 redis 接続タイムアウト設定
CACHES = { "default": { # ... "OPTIONS": { "SOCKET_CONNECT_TIMEOUT": 5, # 连接redis超时时间,单位为秒 "SOCKET_TIMEOUT": 5, # redis读写操作超时时间,单位为秒 } } }
4 を使用した読み取りおよび書き込み操作のタイムアウトを表します。
from django.core.cache import cache cache.set("name", "冰冷的希望", timeout=None) print(cache.get("name"))
設定ファイルに複数の redis 接続が記述されている場合、エイリアスを通じてどの redis を使用するかを指定できます
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"))
CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", ... "OPTIONS": { "CONNECTION_POOL_KWARGS": {"max_connections": 100} } } }
from django_redis import get_redis_connection redis_conn = get_redis_connection("default") redis_conn.set("name", "冰冷的希望") print(redis_conn.get("name")) # 查看目前已创建的连接数量 connection_pool = redis_conn.connection_pool print(connection_pool._created_connections)
from redis.connection import ConnectionPool class MyPool(ConnectionPool): pass
"OPTIONS": { "CONNECTION_POOL_CLASS": "XXX.XXX.MyPool", }
以上がジャンゴredisの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。