一、redis作用
Redis,作为一款开源的内存数据结构存储系统,它可以用作数据库、缓存和消息中间件。以下是Redis的主要作用:
1、高速缓存
Redis能够极大地加速数据的读取速度,因为它将数据存储在内存中通过缓存热点数据,Redis显著减少了对后端数据库(如MySQL)的查询压力,从而提升了整个系统的响应速度
2、会话存储
在Web应用中,Redis常被用来存储用户会话信息,如登录状态、购物车内容等。这有助于在分布式系统中实现会话共享,确保用户在不同服务器之间切换时能够保持会话的连续性。
3、数据持久化
Redis支持发布/订阅消息模式,允许消息发送者(发布者)将消息发送到特定的频道,而消息接收者(订阅者)可以订阅这些频道以接收消息。这为应用之间的异步通信提供了一种简单而有效的解决方案。
4、发布/订阅系统
Redis支持发布/订阅消息模式,允许消息发送者(发布者)将消息发送到特定的频道,而消息接收者(订阅者)可以订阅这些频道以接收消息。这为应用之间的异步通信提供了一种简单而有效的解决方案。
5、计数器:
Redis提供了原子性的递增和递减操作,这使得它成为实现计数器(如网站访问量、点赞数等)的理想选择。
6、排行榜
Redis的有序集合(Sorted Set)数据结构使得实现排行榜变得非常简单。你可以轻松地添加、删除和更新成员,并根据分数对成员进行排序。
7、应用集成
Redis可以与其他应用和服务(如消息队列、搜索引擎等)进行集成,以提供更丰富的功能和服务。
二、安装redis
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple django-redis
三、django集成redis
1、配置django缓存的后端
CACHES = {"default": {"BACKEND": "django_redis.cache.RedisCache", # 配置redis缓存"LOCATION": "redis://127.0.0.1:6379/1", # 使用redis名叫1的数据库"OPTIONS": {# django使用redis的默认客户端来进行操作."CLIENT_CLASS": "django_redis.client.DefaultClient",}}
}
2、缓存查询数据
from django.utils.decorators import method_decorator
from django.views.decorators.cache import cache_page
class AIView(APIView):authentication_classes = []@method_decorator(cache_page(60*60)) # 使用method_decorator装饰器缓存并设置过期时间def get(self,request):input_content=request.query_params.get('input')try:content=load_model(input_content)return Response(data={'msg':'请求成功','data':content,'code':200})except Exception as e:return Response(data={'msg':'请求失败','error':str(e),'code':500})
3、自定义缓存数据
from django.core.cache import cache
class AIView(APIView):authentication_classes = []def get(self,request):input_content=request.query_params.get('input')cache.set('input',input_content,timeout=60*60) # cache.set设置键名,键值,过期时间print(cache.get('input')) # cache.get进行取值try:content=load_model(input_content)return Response(data={'msg':'请求成功','data':content,'code':200})except Exception as e:return Response(data={'msg':'请求失败','error':str(e),'code':500})