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

杨仕航的博客

你可能感兴趣的:(django + redis做缓存的两种方式)