Django-rest-framework(DRF)怎么使用redis

一、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})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄小耶@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值