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数据库相关推荐

  1. c语言操作redis数据库

    前言 redis(Remote Dictionary Server)是一个使用ANSI C编写的开源.支持网络.基于内存.可选持久性的键值对存储数据库–来自维基百科.由于其读写性能高.数据结构丰富.支 ...

  2. zincrby redis python_【Redis数据结构 序】使用redispy操作Redis数据库

    点击蓝色"不太灵光的程序员"关注我哟加个"星标",每天上午 08:00,干货推送!本文依旧会对学习内容进行拆分,建议阅读时间基本保持10分钟内,想学习之前章节内 ...

  3. zincrby redis python_【Redis数据结构 序】使用redis-py操作Redis数据库

    想要看更加舒服的排版.更加准时的推送 关注公众号"不太灵光的程序员" 每日八点有干货推送 同时发布<[Redis数据结构 1序]1使用redis-py操作Redis数据库&g ...

  4. Linux下使用C++操作redis数据库

    Linux下使用C++操作redis数据库 文章目录 Linux下使用C++操作redis数据库 一.安装配置hiredis.h 二.接口介绍 1.**`建立链接:redisConnect`** 2. ...

  5. C/C++编程操作Redis数据库,hiredis包装redis数据库操作接口及测试(增删改查与连接)

    介绍一个实际应用场景,对于客户频繁需要查询的信息,可以将其放在redis内存数据库中,相当于一个缓存,每次查的时候先去redis内存数据库中去查询,如果查询不到再去oracle数据库中查询,这样提高了 ...

  6. python获取redis数据_Python之操作redis数据库

    使用redis模块 一.操作redis 1.添加信息 (1)直接建key-value信息: 右键-Add New Key,手动添加key和value 右键-Console,打开控制台,写入命令 (2) ...

  7. c++操作redis数据库(详解)

    1.安装hiredis.h接口 C++来操作redis数据库,是通过hiredis.h接口来实现,目前只能在Linux环境使用. git clone https://github.com/redis/ ...

  8. python读写操作redis数据库

    python读写操作redis数据库 redis有16个逻辑数据库(编号db0到db15),每个逻辑数据库数据是隔离的,默认db0.选择第n个逻辑数据库,命令select n ,python连接时可指 ...

  9. java连接操作redis数据库

    1.通过jedis连接操作redis数据库 第一步,导包 第二步,连接操作string类型和hashmap类型数据 结果如下 2.通过springdata Redis操作redis数据库 第一步,导包 ...

最新文章

  1. Solaris中创建磁盘集报”rpc.metad:Permission denied”错误
  2. Android:支持多选的本地相册
  3. linux报错之no space left on device问题分析
  4. ios开发之--调整UISearchBar的输入框的背景颜色
  5. linux 停用用户,linux – 如何禁用用户的网络访问?
  6. CSDN Markdown帮助文档
  7. Xcode添加include目录
  8. 神操作!我把 3000 行代码重构成 15 行!
  9. StrangIOC框架一
  10. Python实现批量查询手机号
  11. QT 安装 配置过程
  12. 布袋除尘器有关matlab编程,布袋除尘器工作原理结构图及使用注意事项
  13. asterisk简单实用
  14. Android 如何实现气泡选择动画,食堂大妈看完都会了
  15. 【报表开发】:BI---新视界---请休假个人报表
  16. 基于stm32的三轮遥控车
  17. VCS+Verdi脚本化仿真Vivado工程流程
  18. 杰理之AD14N系列程序获取复位源与唤醒源接口介绍【篇】
  19. 2022-08-21 星环科技-C++开发笔试
  20. 相关子查询(如何理解相关子查询与父查询间存在的 循环)

热门文章

  1. Mongodb知识总结
  2. 计算机一级电子表格TF函数,tf.slice()函数详解(极详细)
  3. 14秋 c 语言程序设计 在线作业1,14秋学期《C语言及程序设计》在线作业
  4. mysql当数据改变时_MySQL中,当update修改数据与原数据相同时会再次执行吗?
  5. 汇编语言——计算Z=(W * X)/ (Y+6),R=余数
  6. matlab 除噪点,MATLAB应用在基于噪声检测的图像均值去噪法
  7. 结构体数组实现的简易学生信息管理系统
  8. iBatis SqlMap的配置总结
  9. 软件工程概论 课堂练习 第3次作业6【流图;计算环形复杂度;找独立路径】
  10. 在双向链表存储结构中,删除p所指的结点时,须修改指针()【选择题】