Django中pipeline操作Redis数据库
1.Redis的 C - S 架构:
- 基于客户端-服务端模型以及请求/响应协议的TCP服务。
- 客户端向服务端发送一个查询请求,并监听Socket返回。
- 通常是以阻塞模式,等待服务端响应。
- 服务端处理命令,并将结果返回给客户端。
存在的问题:
- 如果Redis服务端需要同时处理多个请求,加上网络延迟,那么服务端利用率不高,效率降低。
解决的办法:
- 管道pipeline
2.pipeline的介绍
- 可以一次性发送多条命令并在执行完后一次性将结果返回。
- pipeline通过减少客户端与Redis的通信次数来实现降低往返延时时间。
实现的原理
- 实现的原理是队列。
- Client可以将三个命令放到一个tcp报文一起发送。
- Server则可以将三条命令的处理结果放到一个tcp报文返回。
- 队列是先进先出,这样就保证数据的顺序性。
3. pipeline操作Redis数据库
3.1实现步骤
1. 创建Redis管道 2. 将Redis请求添加到队列 3. 执行请求
3.2代码实现
# 创建Redis管道 pl = redis_conn.pipeline() # 将Redis请求添加到队列 pl.setex('sms_%s' % mobile, constants.SMS_CODE_REDIS_EXPIRES, sms_code) pl.setex('send_flag_%s' % mobile, constants.SEND_SMS_CODE_INTERVAL, 1) # 执行请求 pl.execute()
Django中pipeline操作Redis数据库相关推荐
- c语言操作redis数据库
前言 redis(Remote Dictionary Server)是一个使用ANSI C编写的开源.支持网络.基于内存.可选持久性的键值对存储数据库–来自维基百科.由于其读写性能高.数据结构丰富.支 ...
- zincrby redis python_【Redis数据结构 序】使用redispy操作Redis数据库
点击蓝色"不太灵光的程序员"关注我哟加个"星标",每天上午 08:00,干货推送!本文依旧会对学习内容进行拆分,建议阅读时间基本保持10分钟内,想学习之前章节内 ...
- zincrby redis python_【Redis数据结构 序】使用redis-py操作Redis数据库
想要看更加舒服的排版.更加准时的推送 关注公众号"不太灵光的程序员" 每日八点有干货推送 同时发布<[Redis数据结构 1序]1使用redis-py操作Redis数据库&g ...
- Linux下使用C++操作redis数据库
Linux下使用C++操作redis数据库 文章目录 Linux下使用C++操作redis数据库 一.安装配置hiredis.h 二.接口介绍 1.**`建立链接:redisConnect`** 2. ...
- C/C++编程操作Redis数据库,hiredis包装redis数据库操作接口及测试(增删改查与连接)
介绍一个实际应用场景,对于客户频繁需要查询的信息,可以将其放在redis内存数据库中,相当于一个缓存,每次查的时候先去redis内存数据库中去查询,如果查询不到再去oracle数据库中查询,这样提高了 ...
- python获取redis数据_Python之操作redis数据库
使用redis模块 一.操作redis 1.添加信息 (1)直接建key-value信息: 右键-Add New Key,手动添加key和value 右键-Console,打开控制台,写入命令 (2) ...
- c++操作redis数据库(详解)
1.安装hiredis.h接口 C++来操作redis数据库,是通过hiredis.h接口来实现,目前只能在Linux环境使用. git clone https://github.com/redis/ ...
- python读写操作redis数据库
python读写操作redis数据库 redis有16个逻辑数据库(编号db0到db15),每个逻辑数据库数据是隔离的,默认db0.选择第n个逻辑数据库,命令select n ,python连接时可指 ...
- java连接操作redis数据库
1.通过jedis连接操作redis数据库 第一步,导包 第二步,连接操作string类型和hashmap类型数据 结果如下 2.通过springdata Redis操作redis数据库 第一步,导包 ...
最新文章
- Solaris中创建磁盘集报”rpc.metad:Permission denied”错误
- Android:支持多选的本地相册
- linux报错之no space left on device问题分析
- ios开发之--调整UISearchBar的输入框的背景颜色
- linux 停用用户,linux – 如何禁用用户的网络访问?
- CSDN Markdown帮助文档
- Xcode添加include目录
- 神操作!我把 3000 行代码重构成 15 行!
- StrangIOC框架一
- Python实现批量查询手机号
- QT 安装 配置过程
- 布袋除尘器有关matlab编程,布袋除尘器工作原理结构图及使用注意事项
- asterisk简单实用
- Android 如何实现气泡选择动画,食堂大妈看完都会了
- 【报表开发】:BI---新视界---请休假个人报表
- 基于stm32的三轮遥控车
- VCS+Verdi脚本化仿真Vivado工程流程
- 杰理之AD14N系列程序获取复位源与唤醒源接口介绍【篇】
- 2022-08-21 星环科技-C++开发笔试
- 相关子查询(如何理解相关子查询与父查询间存在的 循环)
热门文章
- Mongodb知识总结
- 计算机一级电子表格TF函数,tf.slice()函数详解(极详细)
- 14秋 c 语言程序设计 在线作业1,14秋学期《C语言及程序设计》在线作业
- mysql当数据改变时_MySQL中,当update修改数据与原数据相同时会再次执行吗?
- 汇编语言——计算Z=(W * X)/ (Y+6),R=余数
- matlab 除噪点,MATLAB应用在基于噪声检测的图像均值去噪法
- 结构体数组实现的简易学生信息管理系统
- iBatis SqlMap的配置总结
- 软件工程概论 课堂练习 第3次作业6【流图;计算环形复杂度;找独立路径】
- 在双向链表存储结构中,删除p所指的结点时,须修改指针()【选择题】