要将 Django 连接到 Redis,我必须为每个视图打开连接:
import redis
cacheDB = redis.StrictRedis()
cacheDB.sadd("new_post", post.id)
有没有办法在某处创建单个连接并将其导入到每个视图中?
您可以使用 django-redis,它允许使用 Redis 作为 Django 缓存框架的后端。它支持连接池。
基本用法:
# settings.py
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/1",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
}
}
然后你可以在你的视图代码中使用它:
from django.core.cache import cache
cache.set('foo', 'bar')
对于
sadd
,您可以使用原始 Redis 客户端:
>>> from django_redis import get_redis_connection
>>> con = get_redis_connection('default')
>>> con
<redis.client.Redis object at 0x2dc4510>