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

news/2024/12/21 22:54:30/

一、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/news/1537129.html

相关文章

鼓组编写:SsdSample鼓映射 GM Map 自动保存 互换midi位置 风格模板 逻辑编辑器

SsdSample音源的键位映射 方便编写鼓的技巧 可以这样去设置键位关系的面板和钢琴卷帘窗的面板,方便去写鼓。 可以先按GM的midi标准去写鼓,然后比对下鼓的键位映射的关系,去调整鼓。 可以边看自己发b站等处的图文笔记,然后边用电…

平台数据分类与聚类实验报告

参考书籍:《数据流挖掘与在线学习算法》 李志杰 1.6.1 实验目的 本书内容以及课程实验主要涉及Java程序设计语言、数据挖掘工具Weka和数据流机器学习平台MOA,因此,需要安装、配置并熟悉实验环境。Java、Weka和MOA都是开源小软件&#xff0…

MySQL基本操作(1)

初始数据库 数据库的基本概念 数据库是一个按照数据结构来组织、存储和管理数据的仓库,换句话说,就是存储数据的仓库。 为何使用数据库?使用数据库不仅仅为了使数据持久化,还能使得数据能够进行有效的管理,以…

智能配音软件哪款好?分享5个搞怪软件

想要让视频或社交媒体内容更加生动有趣?搞笑配音软件是个不错的选择。 无论是嘻哈风格的视频,还是搞怪的段子,合适的配音都能让内容增色不少。 今天,就让我们来探索六个文字配音软件,它们不仅能帮你实现搞笑配音&…

高性能缓存方案 —— Caffeine

一、简介 Caffeine是一个高性能的Java缓存库,它提供了本地缓存的功能。 Caffeine和Redis都是内存级别的缓存,为什么要使用在这两缓存作为二级缓存,它们两有什么区别呢? 虽然它们都是内存级别的缓存,但是Redis是需要单独部署的&…

内网离线安装k8s 1.27.0(保证安装成功)

这里写目录标题 背景步骤一、集群规划及架构(node节点可以有很多个)二、系统初始化准备(所有节点都需要进行操作)三、安装并配置cri-dockerd插件(三台服务器同时操作)四、安装kubeadm(所有节点同步操作)五、初始化集群六、将Node节点添加到集群七、安装网络组件Calico八、…

基于xgboost的分类预测

一、xgboost的介绍 xgboost以及后续的lightGBM等在我的认知中算是目前数据挖掘中最常用的预测算法,在各种数据挖掘比赛中获得了Top的名次。如果想从事数据挖掘相关的岗位,该算法是一定要好好掌握的。 xgboost其实可以认为是GBDT算法的工程实现&#xf…

AI时代互联网信息的几点隐忧

笔者最近一年关注的AI技术比关注的安全技术还多,AI从事实上的对内容生产工作者带来工作效率的提高,年初的时候比较关注的是如何在安全行业使用AI进行赋能,领导也给了类似的命题,让我思考如何让AI在安全行业发力。 目前已经看到的是…