码迷,mamicode.com
首页 > 其他好文 > 详细

Django Redis配置

时间:2019-10-06 18:27:14      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:key   密码   支持   cli   cache   default   option   end   core   

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配置

标签:key   密码   支持   cli   cache   default   option   end   core   

原文地址:https://www.cnblogs.com/Peter2014/p/11627762.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!