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做后台任务,定时给某些特定模块加载缓存,以提高访问速度

杨仕航的博客

posted @   HiIcy  阅读(155)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
点击右上角即可分享
微信分享提示