Django使用redis作为缓存系统

2020-09-24 14:10:49 浏览数 (1)

为了提升网站的性能,加一层缓存是少不了的,由于之前做的东西是用django写的,所以就介绍一下django的缓存系统。

又由于我还使用了redis作为消息队列的后端,这里就不在介绍其他内存数据库,直接使用redis。

django使用redis作为缓存

redis

安装

由于笔者使用的是Ubuntu系统,安装较为简单,其他系统请自行查看官方文档。

代码语言:javascript复制
$ sudo apt-get install redis-server

测试

使用redis命令行客户端测试一下是否成功

代码语言:javascript复制
$ redis-cli

能出现以下结果即为成功

代码语言:javascript复制
redis 127.0.0.1:6379>

其他的redis知识这里不左介绍,如果有兴趣,可以自行了解

django使用redis

安装django-redis

为了让django能够使用redis作为缓存,有人开发了一个库来帮我们实现。django-redis,我们需要安装一下才能使用redis

在终端中输入一下命令进行安装(pip方式)

代码语言:javascript复制
$ pip install django-redis

配置django-redis

在你项目下的setting.py中添加如下代码即可

代码语言:javascript复制
CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    }
}

这样就能开始使用了,如果你想添加修改更多配置,想让其更适合自己的项目一点,可以自己去查看官方文档

这里随便配置一下session backend,同样在下面添加

代码语言:javascript复制
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "default"

使用缓存

在setting中配置好上述配置之后我们就可以开始使用了,django中自带了几个常用的修饰器,可以视情况使用。 比如:

  • django.views.decorators.cache.cache_page()针对每个视图的缓存
代码语言:javascript复制
from django.views.decorators.cache import cache_page

@cache_page(60 * 15)
def my_view(request):
    ...
  • 在setting添加配置,对全站进行缓存
代码语言:javascript复制
MIDDLEWARE = [
    'django.middleware.cache.UpdateCacheMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.cache.FetchFromCacheMiddleware',
]
  • 还可以调用低级api,直接操作缓存。
代码语言:javascript复制
>>> cache.set('my_key', 'hello, world!', 30)
>>> cache.get('my_key')
'hello, world!'

可以按照自己的需要去选择合适的使用方法。

注:

  • 上述环境在ubuntu16.04 lts django1.9中搭建测试成功
  • 上述文字皆为个人看法,如有错误或建议请及时联系我

0 人点赞