Redis,一款高性能key-value数据库,django应用常用redis 作为缓存,话不多说,直奔主题。
一, REDIS服务安装与配置
1,源码安装
直接源码安装:
源码下载:
tar xzf redis-4.0.2.tar.gz
$ cd redis-4.0.2
$ make
在src目录下会生成四个可执行文件,拷贝到同一个目录下
mkdir /usr/local/redis
cp redis-server /usr/local/redis
cp redis-benchmark /usr/local/redis
cp redis-cli /usr/local/redis
cp redis.conf /usr/local/redis
cd /usr/local/redis
为了django能够使用redis ,需要安装django-redis, pip安装:
pip install django-redis
2,配置
vi /usr/local/redis/redis.conf
(1)以守护进程方式运行
daemonize yes (默认为no)
(2) 任意目录下执行
appendonly yes
(3)监听本机6379端口
bind *.*.*.*(本机IP)_
port 6379
(4)日志文件配置
logfile /var/log/redis/redis.log
启动:
resdis-server /usr/local/redis/redis/conf
配置自启动:
echo "/usr/local/resdis/redis-server /etc/redis/redis.conf" >> /etc/rc.d/rc.local
二,django 配置redis作为缓存
CACHES = { 'default': { 'BACKEND':'django_redis.cache.RedisCache', 'LOCATION': 'redis://your_host_ip:6379',"OPTIONS": { "CLIENT_CLASS":"django_redis.client.DefaultClient", "PASSWORD":"yoursecret", }, }, }
以下为可选配置,根据需要自行设定:
REDIS_TIMEOUT=24*60*60
CUBES_REDIS_TIMEOUT=60*60
NEVER_REDIS_TIMEOUT=365*24*60*60
三,缓存使用:
简单讲一下使用redis进行数据的缓存和提取,
方法引入:
from django.core.cache import cache
或使用django自带的缓存装饰器:
from django.views.decorators.cache import cache_page
(1) 数据存入缓存:
缓存写入方法定义示例:
def set_key_value(key_name, value):
cache.set(key, json.dumps( value),settings.NEVER_REDIS_TIMEOUT)
django自带一些装饰器, 如cache_page可以对页面进行缓存,使用方法大致如下:
from django.views.decorators.cache import cache_page
@cache_page(24*3600) #缓存一天
def test(request):
pass
(2) 缓存中提取数据
方法定义示例
def get_key_value(key):
value = cache.get(key)
if value == None:
data = None
else:
data = json.loads(value)
以上写入和读取缓存键值的方法可以直接函数调用,亦可以封装为装饰器使用,形如:
def wr_decorat or(func):
'''缓存写入/读取装饰器,
:param func:
:return:
'''
def wrapper(request,*args,**kwargs):
pass #读写缓存实现
return wrapper
使用时直接在方法顶部引入装饰器即可,在此不作进一步阐述。
以上简单阐述了redis服务器的搭建以及django项目以redis为缓存的配置使用方法,希望对有需要的同学提供参考帮助。
网友评论