Django使用redis缓存服务器

时间秒杀一切 提交于 2020-02-27 19:05:54

1. 先下载库 django-redis

2.在setting中添加缓存设置

CACHES = {
    'default': {
        'BACKEND': 'django_redis.cache.RedisCache',
        'LOCATION': 'redis://127.0.0.1:6379',
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
            "PASSWORD": "密码",
        },
    },
}

 3.视图函数

from django.core.cache import cache  # 引入缓存模块
def detail(request, pk):
    if cache.has_key(pk):
        print('有cach')
        post = cache.get(pk)
        print(post)
    else:
        print('没cach')
        post = get_object_or_404(Post, pk=pk)
        time.sleep(3)
        cache.set(pk, post, 10)  # 写入key为key,值为value的缓存,有效期30分钟

    return render(request, 'blog/detail.html', context={'post': post})

4.redis 里就能看到有数据了 然后十秒过期之后就没了。有个情况 setting 不配置redis 视图函数那也能使用缓存,但不知道存哪去了。 如果没有设置缓存方式,那么就默认使用的是本地内存缓存的方式。

 

 

直接使用视图缓存缓存视图

(setting不用做配置)

from django.views.decorators.cache import cache_page

@cache_page(60 * 15)
def my_view(request):
    ...
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!