1、首先安装redis,ubuntu下执行以下命令
sudo apt-get install redis-server
2、安装redis库
pip install django-redis
3、配置django中的settings
caches={
‘default’:{
‘backend’:‘redis_caches.cache.RedisCache’,
'location':127.0.0.1:9999 #redis服务ip和端口,
‘option’:{
'client_class':'redis_cache.client.DefaultClient',
},
},
}
REDIS_TIMEOUT
=
7
*
24
*
60
*
60
CUBES_REDIS_TIMEOUT
=
60
*
60
NEVER_REDIS_TIMEOUT
=
365
*
24
*
60
*
60
return data
#write cahche
def write_to_cache(self,username)
key='user_id_of'+username
cache.set(key,json.dumps(username),settint.NEVER_REDIS_TIMEOUT)
4、
通过上面的这两个方法就可以实现对redis的读取操作了,只需要将需要的字段当参数传入到方法中就好了。
那么之前提到的memcached呢?其实也是一样的配置:
CACHES = { 'default' : { 'BACKEND' : 'django.core.cache.backends.memcached.MemcachedCache' , 'LOCATION' : '127.0.0.1:11211' , } } |
当然用法也是和我上面的例子是一样的了。其实对于redis这样的缓存服务器来说,配置都是很简单的,而具体的使用也不难,官网上面也有很多简单明了的例子可以供我们参考,只有一点需要注意的,那就是对于要将什么样的信息保存到redis才是我们真正需要关心的。
5、使用缓存redis开发博客系统
Django开发博客系统redis缓存
Redis 是一个高性能的key-value数据库。redis的出现, 很大程度补偿了memcached这类keyvalue存储的不足,在部分场合可以对关系数据库起到很好的补充作用。 它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。
目前Redis已经发布了3.0版本,正式支持分布式,这个特性太强大,以至于你再不用就对不住自己了。
性能测试
服务器配置:Linux 2.6, Xeon X3320 2.5Ghz
SET操作每秒钟110000次,GET操作每秒钟81000次
stackoverflow网站使用Redis做为缓存服务器。
安装redis
服务器安装篇我写了专门文章, 请参阅redis入门与安装
django中的配置
我们希望在本博客系统中,对于文章点击数、阅览数等数据实现缓存,提高效率。
requirements.txt
添加如下内容,方便以后安装软件依赖,由于在pythonanywhere上面并不能安装redis服务,所以本章只能在本地测试。
redis==2.10.5
|
settings.py配置
新增内容
1
|
from urllib.parse import urlparse
|
local_settings.py配置
这个是本地开发时候使用到的配置文件
1
|
DEBUG = True
|
使用方法
cache_manager.py缓存管理器
我们新建一个缓存管理器cache_manager.py,内容如下
1
|
#!/usr/bin/env python
|
views.py修改
然后我们修改view.py,在相应的action里使用这个cache_manager:
1
|
from .commons import cache_manager
|