Django 连接到 Redis

Har*_*nen 3 python django redis

要将 Django 连接到 Redis,我必须为每个视图打开连接:

import redis
cacheDB = redis.StrictRedis()
cacheDB.sadd("new_post", post.id)
Run Code Online (Sandbox Code Playgroud)

有没有办法在某处创建单个连接并将其导入到每个视图中?

ypr*_*rez 5

您可以使用django-redis,它允许使用 Redis 作为 Django 缓存框架的后端。它支持连接池

基本用法:

# settings.py
CACHES = {
    'default': {
        'BACKEND': 'redis_cache.cache.RedisCache',
        'LOCATION': '127.0.0.1:6379:1',
    }
}
Run Code Online (Sandbox Code Playgroud)

然后你可以在你的视图代码中使用它:

from django.core.cache import cache
cache.set('foo', 'bar')
Run Code Online (Sandbox Code Playgroud)

您可以sadd使用原始 Redis 客户端:

>>> from django_redis import get_redis_connection
>>> con = get_redis_connection('default')
>>> con
<redis.client.Redis object at 0x2dc4510>
Run Code Online (Sandbox Code Playgroud)