zoukankan      html  css  js  c++  java
  • DRF 缓存解决方案 drf-extensions / redis

    drf-extensions

    概述

    drf-extensions组件内部提供了 DRF  的本地内存方式的缓存方式

    本地内存方式缓存在项目重启后则会消失

    官方点击 这里  

    安装

    pip3 install drf-extensions
    
    or from github
    
    pip3 install https://github.com/chibisov/drf-extensions/archive/master.zip

    导入

    from rest_framework_extensions.cache.mixins import CacheResponseMixin

    使用

    在要被使用的 DRF 视图类中继承此类( 最好写在第一个 )

    class GoodsListViewset(CacheResponseMixin, mixins.ListModelMixin.....):
        pass

    配置

    此处配置为5s失效, 其他配合点击这里 查看 

    REST_FRAMEWORK_EXTENSIONS = {
        'DEFAULT_CACHE_RESPONSE_TIMEOUT': 5
    }

    效果

    在无缓存的时候请求是 1s 左右

    有缓存的时候为 43ms, 超时5s后则变回1s, 5s内刷新都是40ms左右

    搭载 Redis

    安装

    使用第三方组件 django-redis

    pip install django-redis -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

    配置

    配置相关的连接参数在 settings.py 中

    CACHES = {
        "default": {
            "BACKEND": "django_redis.cache.RedisCache",
            "LOCATION": "redis://127.0.0.1:6379",
            "OPTIONS": {
                "CLIENT_CLASS": "django_redis.client.DefaultClient",
                "PASSWORD": "yangtuo",
            }
        }
    }

    使用

    基础的使用点击  这里

    如果是搭配  drf-extensions 组件, 则和上面的方法是一样的

     drf-extensions  的缓存方法是基于本地的, 如果在配置中配置了 基于 redis 

    则缓存方案自动切换为 redis 方案即可. 

  • 相关阅读:
    09.回文数
    08.字符串转换位整数
    背景图片自适应
    认证 (authentication) 和授权 (authorization) 的区别
    vue-组件之间传值
    数组对象去重
    二进制数转换十进制数
    node-删除对象中指定属性失效问题-JSON.parse实例化
    Vue-动态修改数组
    正则遇到的问题集合
  • 原文地址:https://www.cnblogs.com/shijieli/p/10775642.html
Copyright © 2011-2022 走看看