对于非经常更新的服务器数据,若每次都从硬盘读取一次,会浪费服务器资源、拖慢响应速度,而且数据更新频率较高,服务器负担比较大。若保存到数据库,还需要额外建立一张对应的表存储数据。一个更好的方法是在Django中使用Redis进行缓存。
缓存配置
首先安装django-redis:
pip install django-redis
在setting文件中设置CACHES:
CACHES = {
'default':{
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION':"redis://you_host:you_port/1",
'TIMEOUT': 200, # NONE 永不超时
'OPTIONS':{
"PASSWORD":"you_passwd",#密码,没有可不设置
'CLIENT_CLASS': 'django_redis.client.DefaultClient', #redis-py 客户端
'PICKLE_VERSION': -1, # 插件使用PICKLE进行序列化,-1表示最新版本
'CONNECTION_POOL_KWARGS': {
"max_connections": 100}, # 连接池最大连接数
'SOCKET_CONNECT_TIMEOUT': 5, # 连接超时
'SOCKET_TIMEOUT': 5, # 读写超时
}
#"KEY_PREFIX ":"test",#前缀
}
}
配置好后运行程序,进行测试:
引入库
>>>from django.core.cache import cache
>>>cache.set("test","abscd",30)
True
同时查看redis-cli客户端是否写入:
已经写入redis,说明配置没问题。
缓存
1.视图缓存
缓存框架通用的方法就是缓存视图函数,在需要进行缓存的视图函数文件中引入django.views.decorators.cache定义的装饰器cache_page,它可以自动缓存视图:
from django.views.decorators.cache import cache_page
@cache_page(60 * 15)
def my_view(request):<