美文网首页
Redis缓存在django应用中的应用配置

Redis缓存在django应用中的应用配置

作者: 金融测试民工 | 来源:发表于2020-11-26 20:47 被阅读0次

    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为缓存的配置使用方法,希望对有需要的同学提供参考帮助。

    相关文章

      网友评论

          本文标题:Redis缓存在django应用中的应用配置

          本文链接:https://www.haomeiwen.com/subject/nqiziktx.html