django-restful:緩存機制 drf-extensions 學習記錄

配置第三方包 的緩存功能 github地址:https://github.com/chibisov/drf-extensions

文檔:http://chibisov.github.io/drf-extensions/docs/#cacheresponsemixin

安裝
pip install drf-extensions

1.內存緩存

配置 非常簡單

settings 可不用寫 默認有

REST_FRAMEWORK_EXTENSIONS = {
    'DEFAULT_OBJECT_CACHE_KEY_FUNC':
      'rest_framework_extensions.utils.default_object_cache_key_func',
    'DEFAULT_LIST_CACHE_KEY_FUNC':
      'rest_framework_extensions.utils.default_list_cache_key_func',
}
然后 只需要 在你需要進行緩存的地方進行 配置
例子 CacheResponseMixin 配置上這個 就行了 注意一定要在最先配置這個 順序很重要
from myapps.serializers import UserSerializer
from rest_framework_extensions.cache.mixins import CacheResponseMixin

class UserViewSet(CacheResponseMixin, viewsets.ModelViewSet):
    serializer_class = UserSerializer
然后 就是配置過期時間 畢竟 數據也會有更新的 所以加上一個 過期時間

settings

REST_FRAMEWORK_EXTENSIONS = {
    'DEFAULT_CACHE_RESPONSE_TIMEOUT': 60 * 15   #秒為單位  自己 隨意更改
}

2.redis 緩存

這個可以更直觀的看著 dir-extensions做了什么
django 連接redis 需要一些 第三方插件 github地址:https://github.com/niwinz/django-redis

安裝
pip install django-redis
配置

settings

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

就這樣 就可以了 至于 redis 的安裝 我這里就不寫了
需要啟動了 redis 在啟動項目 才能連接上
通過命令 keys * 可以查看 緩存 一些規則

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容