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

embedded/2024/10/11 4:22:49/

一、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缓存的后端

python">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、缓存查询数据

python">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、自定义缓存数据

python">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})


http://www.ppmy.cn/embedded/125699.html

相关文章

运维工具之ansible

Ansible 1.什么是ansible? ​ ansible是基于ssh架构的自动化运维工具,由python语言实现,通过ansible可以远程批量部署等。 2.部署前提 ​ 控制端需要安装ansible,被控制端要开启ssh服务,并允许远程登录,被管理主机需要安装py…

喜讯!迈威通信TSN产品通过“时间敏感网络(TSN)产业链名录计划”评测,各项指标名列前茅

TSN技术,作为推动企业网络化与智能化转型的关键力量,已成为工业网络迈向下一代演进的共识方向,正加速重构工业网络的技术架构与产业生态。为响应这一趋势,工业互联网产业联盟携手中国信息通信研究院及50余家产学研用单位&#xff…

Qt QPushButton clicked信号浅析

前言 Qt 的 QPushButton clicked 信号原型: void clicked(bool checked false);通常,使用 Qt 的 QPushButton clicked 点击信号时,会以如下方式使用: connect(ui->pushButton, &QPushButton::clicked, this, [](){qDeb…

影视cms泛目录用什么程序?苹果cms二次开发泛目录插件

影视CMS泛目录一般使用的程序有很多种,(maccmscn)以下是其中几种常见的程序: WordPress:WordPress是一个非常流行的开源内容管理系统,可以通过安装一些插件来实现影视CMS泛目录功能。其中,一款常…

R包:APAlyzer从RNA-seq数据计算APA表达丰度

文章目录 介绍教程实战案例数据脚本运行 介绍 今天安利APAlyzer工具,它是通过RNA-seq数据获取3′UTR APA, intronic APA等表达谱的R包。 APAlyzer将bam文件比对到PolyA-DB数据库识别APA。 Most eukaryotic genes produce alternative polyadenylation (APA) isofo…

YOLOv10改进,YOLOv10添加CA注意力机制,二次创新C2f结构,助力涨点

改进前训练结果: 二次创新C2f结构训练结果: 摘要 在本文中,提出了一种新的移动网络注意力机制,将位置信息嵌入到信道注意力中称之为“协调注意力”。与渠道关注不同通过 2D 全局池将特征张量转换为单个特征向量,坐标注意力因子将通道注意力转化为两个 1D 特征编码过程…

OpenAI .NET 库稳定版发布,支持 GPT-4o 并改进 API 功能

penAI 在6月推出其官方 .NET 库的 beta 版之后,如今终于发布了稳定版。该库已在 NuGet 上作为包发布,支持最新的模型,如 GPT-4o 和 GPT-4o mini,并且提供完整的 OpenAI REST API。这次发布包括同步和异步 API,以及流式…

基于SpringBoot+Vue+MySQL的校园招聘管理系统

系统展示 用户前台界面 管理员后台界面 公司后台界面 系统背景 随着高等教育的普及和就业市场的竞争加剧,校园招聘成为了连接学生与企业的关键桥梁。然而,传统的校园招聘流程繁琐、效率低下,且信息更新不及时,给企业和求职者带来了…