DRF 配置 Redis 缓存

pip install redis

pip install drf-extensions

pip install django-redis

settings 配置  这是全局配置 一般不设置  只在需要 缓存的接口上配置

# DRF扩展
REST_FRAMEWORK_EXTENSIONS = {
  # 缓存时间
  'DEFAULT_CACHE_RESPONSE_TIMEOUT': 60 * 60,
  # 缓存存储
  'DEFAULT_USE_CACHE': 'default',
}
@cache_response(timeout=60*60, cache='default')

timeout 缓存时间; 
cache   缓存使用的Django缓存后端(即CACHES配置中的键名称;

如果在使用cache_response装饰器时未指明timeout或者cache参数,则会使用配置文件中的默认配置,可以通过如下方法指明:

使用redis缓存

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

使用cache_response装饰器


class RoleViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
	"""
	list:8 部门列表
	"""
	queryset = Role.objects.all()
	serializer_class = RoleSerializer

	@cache_response(timeout=10)
	def list(self, request, *args, **kwargs):
		queryset = self.filter_queryset(self.get_queryset())

		page = self.paginate_queryset(queryset)
		if page is not None:
			serializer = self.get_serializer(page, many=True)
			return self.get_paginated_response(serializer.data)

		serializer = self.get_serializer(queryset, many=True)
		return Response(serializer.data)
发布了73 篇原创文章 · 获赞 41 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/weixin_37989267/article/details/105555273