Django-DRF内存缓存机制

官方文档:http://chibisov.github.io/drf-extensions/docs/     

  • 位置:Caching   - CacheResponseMixin

1.安装扩展包

pip install drf-extensions
2.设置setting.py(已经默认设置了)

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',
}
3.Views.py中导入及使用,直接把 CacheResponseMixin 放在继承类的最前面

from myapps.serializers import UserSerializer
from rest_framework_extensions.cache.mixins import CacheResponseMixin

class UserViewSet(CacheResponseMixin, viewsets.ModelViewSet):
    serializer_class = UserSerializer
4.设置缓存过期时间,保持数据的刷新,防止旧数据长时间保留。在setting.py中设置

#DRF的缓存时间设置
REST_FRAMEWORK_EXTENSIONS = {
    'DEFAULT_CACHE_RESPONSE_TIMEOUT': 60 * 15
}


总结:

  • 一般公共数据,主页文章,商品之类的设置缓存比较好。
  • 用户操作需要及时更新数据的则不需要设置缓存。
  • 因为是内存缓存机制,所以电脑每次重启,缓存都失效。




你可能感兴趣的:(python,Django)