python学习交流公众号 Hello Python上线啦,欢迎关注
Django 接口缓存私有化缓存
Django业务中部分接口,需要优化响应速度,减少db压力,采用django-api-cache来做接口缓存,实测配置简单,效果很好,上代码
一:安装(详细说明可参考项目地址:https://github.com/pygodnet/django-api-cache)
pip install django-api-cache
二:在此使用redis做缓存,也可使用django的其他缓存
pip install django-redis
# settings.py 中加入如下配置
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/1",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
# "PASSWORD": "mysecret"
}
}
}
三:代码中无需任何改造,直接使用
1.类视图:
from django_api_cache import api_cache
class TestViewTwo(View):
@method_decorator(api_cache(timeout=30,header_key='Authorization',body_data=False,param_data=['aaa']))
def post(self,request):
name = request.META.get('HTTP_AUTHORIZATION')```
2.函数视图:
from django_api_cache import api_cache
@api_cache(timeout=30,header_key='Authorization',body_data=False,param_data=['aaa'])
def test_demo(request):
四:实测接口缓存后,响应速度5ms内,赞。
第一次访问:
缓存后访问: