要将Django连接到Redis,我必须为每个视图打开连接:
import redis
cacheDB = redis.StrictRedis()
cacheDB.sadd("new_post", post.id)
有没有办法在某处创建单个连接并将其导入每个视图?
答案 0 :(得分:4)
您可以使用django-redis,它允许使用Redis作为Django缓存框架的后端。它支持connection pooling。
基本用法:
# settings.py
CACHES = {
'default': {
'BACKEND': 'redis_cache.cache.RedisCache',
'LOCATION': '127.0.0.1:6379:1',
}
}
然后您可以在视图代码中使用它:
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>