django + redis做缓存的两种方式
作为python web框架的老大大,其下一帮“小弟”辅助那是多的很的,这不,redis的搭配django_redis
完美辅助.关于redis我就不多做介绍了,
安装django_redis
pip install django_redis
django 项目settings.py 文件设置
CACHES = {
'default': {
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': 'redis://127.0.0.1:6379/2',
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
},
},
}
然后开启redis,有两种方式启用django的cache,
站点缓存
MIDDLEWARE = [
# 站点缓存
# 'django.middleware.cach//e.UpdateCacheMiddleware',
***
页面缓存
from django.views.decorators.cache import cache_page
@cache_page(60)
def search(request):
maxLength = 9
if request.met
以上都是用django的cache的shortcut实现的
通过手动cache,具有更大的灵活性
from django.core.cache import cache
def visited_user(request):
key='visited'
if cache.has_key(key):
data = cache.get(key)
else:
data = get_data()
cache.set(key,data,60*60)
return data
def get_data()
data = Movie.objects.all()
return data
为visited_user视图配好路由url, 再写好前端页面即可访问
但是这个我这个例子不灵活,
后期的话可以用celery做后台任务,定时给某些特定模块加载缓存,以提高访问速度
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?