Django Redis配置
Posted peter2014
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django Redis配置相关的知识,希望对你有一定的参考价值。
Django Redis配置
# Django默认不支持redis,需要第三方插件来支持
pipenv install django-redis
pipenv install hiredis # 不是必须
vim settings.py
CACHES =
'default':
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': 'redis://192.168.2.128:6379/1',
'TIMEOUT': 300, # NONE 永不超时
'OPTIONS':
'CLIENT_CLASS': 'django_redis.client.DefaultClient', # redis-py 客户端
'PARSER_CLASS': 'redis.connection.HiredisParser', # hiredis是C客户端,性能更高
'PASSWORD': 'mysecret', # 密码,可不设置
'PICKLE_VERSION': -1, # 插件使用PICKLE进行序列化,-1表示最新版本
'SOCKET_CONNECT_TIMEOUT': 5, # 连接超时
'SOCKET_TIMEOUT': 5, # 读写超时
'CONNECTION_POOL_KWARGS': "max_connections": 100 # 连接池最大连接数
,
'CONNECTION_POOL_CLASS': 'redis.connection.BlockingConnectionPool', # 自定义连接池
# 支持主从哨兵模式
CACHES =
'default':
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': [
'redis://192.168.2.128:6379/1', # master
'redis://192.168.2.128:6380/1', # slave
]
# cache是django提供的代理对象,根据配置的BACKEND进行操作
from django.core.cache import cache
cache.set('foo', 'value', timeout=25)
cache.set('foo', 'value', timeout=None)
cache.ttl('foo')
cache.persist('foo') # 永不过期
cache.expire("foo", timeout=5)
cache.keys("foo_*")
cache.iter_keys("foo_*")
cache.delete_pattern("foo_*")
cache.set("key", "value1", nx=True) # 实现 SETNX原子操作
# key必须存在,否则报错
cache.incr("key")
cache.incr("key")
# 获得所使用的客户端对象
from django_redis import get_redis_connection
con = get_redis_connection("default")
以上是关于Django Redis配置的主要内容,如果未能解决你的问题,请参考以下文章