为了提升网站的性能,加一层缓存是少不了的,由于之前做的东西是用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()针对每个视图的缓存
from django.views.decorators.cache import cache_page
@cache_page(60 * 15)
def my_view(request):
...
- 在setting添加配置,对全站进行缓存
MIDDLEWARE = [
'django.middleware.cache.UpdateCacheMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.cache.FetchFromCacheMiddleware',
]
- 还可以调用低级api,直接操作缓存。
>>> cache.set('my_key', 'hello, world!', 30)
>>> cache.get('my_key')
'hello, world!'
可以按照自己的需要去选择合适的使用方法。
注:
- 上述环境在ubuntu16.04 lts django1.9中搭建测试成功
- 上述文字皆为个人看法,如有错误或建议请及时联系我