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")


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM