Django中使用Redis
通用方式
直接导入即可使用,在哪个文件使用就在哪个文件导入POOL实例
import redis
POOL = redis.ConnectionPool(max_connections=10, host='127.0.0.1', port=6379, decode_responses=True)
conn = redis.Redis(connection_pool=POOL)
django-redis模块
安装
pip install django-redis
settings配置文件
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
"CONNECTION_POOL_KWARGS": {"max_connections": 100}
# "PASSWORD": "None",
}
}
}
简单使用
from django_redis import get_redis_connection
class RedisView(ViewSet):
def list(self, request):
conn = get_redis_connection() # 从池中获取一个链接
conn.incrby('count')
count = conn.get('count')
return APIResponse(msg='您是第%s个访问的' % count)
Django的缓存机制(配置缓存)
当导入了django-redis模块,并且settings配置CACHES后,Django自带的缓存机制便会自动将数据存入Redis缓存中,并且不用判断数据类型,非常方便
- 必须安装django-redis且配置如下
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
"CONNECTION_POOL_KWARGS": {"max_connections": 100}
# "PASSWORD": "123",
}
}
}
- 其他文件中存入缓存
from django.core.cache import cache
conn.set('key1',{'name':'123'})
name = conn.get('key1')
print(name)
# {'name': '123'}