django 缓存系统

https://docs.djangoproject.com/en/dev/topics/cache/#the-low-level-cache-api
http://www.ziqiangxuetang.com/django/django-cache.html
可以缓存能被pickle的对象
安装
pip install hiredis django-redis-cache
setting中配置
#KEY_PREFIX 设置缓存键值的前缀
CACHES = {
'mysql': {
'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
'LOCATION': 'cache',
},
'dummy': {
'BACKEND': 'django.core.cache.backends.dummy.DummyCache'
},
'redis': {
'BACKEND': 'redis_cache.RedisCache',
'LOCATION': [
'127.0.0.1:6379',
# ':',
# ':',
],
'OPTIONS': {
'DB': 1,
# 'PASSWORD': 'yadayada',
'PARSER_CLASS': 'redis.connection.HiredisParser',
'CONNECTION_POOL_CLASS': 'redis.BlockingConnectionPool',
'CONNECTION_POOL_CLASS_KWARGS': {
'max_connections': 50,
'timeout': 20,
},
'PICKLE_VERSION': -1,
# 'MASTER_CACHE': ':',
},
},
}
CACHES['default']=CACHES['redis'] #必须有一个default配置 #使用cache
from django.core.cache import cachescache=caches['redis']#使用redis做为缓存,
>>> cache.set('my_key', 'hello, world!', 30) 设置一个key并且30秒后过期
>>> cache.get('my_key')
>>> cache.get_many(['a', 'b', 'c'])
>>> cache.set_many({'a': 1, 'b': 2, 'c': 3})
>>> cache.delete_many(['a', 'b', 'c'])
>>> cache.clear()#情况当前所有缓存
>>> cache.incr('num')#使当前值+1
>>> cache.incr('num', 10) #当前值+10
>>> cache.decr('num')#值-1
>>> cache.decr('num', 5)#值-5cache.set('my_key', 'hello world!')#默认为版本一
"SETEX" ":1:my_key" "300" "\x80\x02U\rhello python!q\x01."
cache.set('my_key', 'hello world!', version=2)
redis 命令
"SETEX" ":2:my_key" "300" "\x80\x02U\x03666q\x01."
cache.get('my_key',version=2)另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。