Redis——pipeline

在日常使用中,我们多使用一次的网络命令通信,就像下图所示,

一次网络命令通信

当我们有多条命令的时候,我们就需要多次进行网络命令传输,就像这样,
批量网络命令通信

在某些场景下,我们可以使用mget,hmget等批量的命令,但是却无法同时进行多条命令的通信(由于redis是单线程的,下一次请求必须等待上一次请求执行完成后才能继续执行。然而使用Pipeline模式,客户端可以一次性的发送多个命令,无需等待服务端返回),所以我们想到了Redis的pipeline,也就是我们所说的流水线,他允许我们在一次的网络命令通信中,打包执行多条命令,就像下图这样,
pipeline

我们知道,Redis命令的执行级别是ms,但是网络传输的时间却是不可控的,使用pipeline的时候,我们节省了大量的网络传输时间,但是对于实时性要求较高的系统,有时候并不适合,因为我们需要等待所有命令的执行完成

  • 使用策略:
    • 注意每次pipeline携带的数据量
    • pipeline每次只能作用于一个Redis节点
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 什么是流水线 其实就是批量查询(来减少网络用时) 2. 客户端实现 3. 两个注意 注意批量数据量大小要合适...
    FantJ阅读 3,882评论 0 2
  • java中redis的pipeline pipeline方式执行redis操作: doInRedis方法中实现需要...
    OneFish阅读 13,526评论 0 3
  • 前几日花两百多买了双高跟皮鞋,只穿了一下午,美鞋就送我个大大的水泡,疼得我路都不敢走。赶紧又买双特价九十九元的平底...
    痴行人阅读 1,664评论 0 0
  • 发笑的机理 人会因为意外感、优越感、宣泄感而发笑。 意外感是指他人的语言或者行为前后矛盾(不合逻辑)。 例子:自从...
    栋鸿阅读 1,846评论 0 0
  • 前言 本篇文章属于长篇大论,没有耐性的同学只看标题就行了。写这篇文章的时候名字我也纠结了好久,诸如”论文件的命名”...
    泽赫阅读 2,299评论 0 1