随着aomp接入越来越多的机器和用户,性能提升将会是必须面对的问题,未来接入redis缓存来解决某些功能模块性能问题是一个可以考虑的途径。
下面介绍一下django项目接入redis的过程
一、服务器上安装redis
redis可以从官网下载也可以从pacap下载(http://pacap.paic.com.cn/software/softwarepage/),以安装redis-2.8.3为例
下载之后,上传到服务器目录(例如/wls/)
a、安装过程
执行如下命令
tar -xvf redis-2.8.3.tar.gz
cd /wls/redis-2.8.3
make
将redis的操作命令放到其他目录(例如/usr/redis)
mkdir /usr/redis
cd src/
cp redis-server /usr/redis
cp redis-benchmark /usr/redis
cp redis-cli /usr/redis
cp ../redis.conf /usr/redis
2、redis的启动
首先修改/usr/reids/redis.conf
将daemonize no修改为daemonize yes
这样一来redis启动可以放在后台
然后启动redis /usr/redis/redis-server 默认端口为6379
使用redis的命令行模式 /usr/redis/redis-cli
二、django项目接入redis
在django项目的setting.py中接入如下代码
CACHES = {
'default': {
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': '127.0.0.1:6379',
"OPTIONS": {
#"根据项目需求写",
},
},
}
REDIS_TIMEOUT=7*24*60*60
CUBES_REDIS_TIMEOUT=60*60
NEVER_REDIS_TIMEOUT=365*24*60*60
三、简单的验证过程
网上找了一个简单的读写redis的函数
from django.conf import settings
from django.core.cache import cache
def read_from_cache(self, user_name):
key = 'user_id_of_'+user_name
value = cache.get(key)
if value == None:
data = None
else:
data = json.loads(value)
return data
def write_to_cache(self, user_name):
key = 'user_id_of_'+user_name
cache.set(key, json.dumps(user_name), settings.NEVER_REDIS_TIMEOUT)
调用过程(注意是在django项目下调用 相应的urls和前端触发不可少)
def redis_test(request):
write_to_cache('1','zyyztets')
read_from_cache('1','zyyztets')
return HttpResponse( read_from_cache('1','zyyztets'))
调用过程(注意是在django项目下调用 相应的urls和前端触发不可少)
def redis_test(request):
write_to_cache('1','zyyztets')
read_from_cache('1','zyyztets')
return HttpResponse( read_from_cache('1','zyyztets'))
可以看到前端可以返回 "zyyztets"
在服务器上也可以看到有写入
(jump) [root@SZB-L0031636 redis-2.8.3]# /usr/redis/redis-cli
127.0.0.1:6379> keys *
1) ":1:user_id_of_zyyztets"
自此说明django接入redis成功,且读写正常