美文网首页
redis管道

redis管道

作者: SODMI | 来源:发表于2018-01-08 11:52 被阅读0次

redis单个请求与批量操作对比

  Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务。
这意味着通常情况下一个请求会遵循以下步骤:
● 客户端向服务端发送一个查询请求,并监听Socket返回,通常是以阻塞模式,等待服务端响应。
● 服务端处理命令,并将结果返回给客户端。
所以在大批量操作数据时,很容易消耗IO,导致代码性能差,执行时间长。
  Redis 管道技术可以在服务端未响应时,客户端可以继续向服务端发送请求,并最终一次性读取所有服务端的响应。请求流程对比如下图:


单个执行与管道执行对比图

管道的特点

  pipeline并不是原子性的,中间可能会存在部分失败的情况,也就是说不能保证每条命令都能执行成功,这个是需要注意的,如果需要每条命令都执行成功,我们在批量执行过程中需要监控执行数量和返回的成功数量是否一致。
  同时,当一次性进行大量的数据批量操作时,由于数据量过大,导致redis执行超时或其他的情况,所以这块最好事先测试自己的数据大小,决定多少数据适合批量一次性操作,类似采用分页批量操作。

管道适用场景

  pipeline适合于什么样的场景使用呢?一般是对业务场景不需要实时性和准确性的系统,保证大部分操作成功即可。如果想让操作一定成功,需要一定检测和补偿机制,这里补偿机制一般是根据批量操作的返回的状态和成功数量和批量操作的对比来进行补偿,如果有部分失败,就转向单个redis请求操作,但是此处需要做好监控,避免批量全部失败,降级为单个执行,这样性能损耗将更大,这是需要极度避免的。

相关文章

  • Redis管道技术的使用

    目录 Redis 管道技术 SpringDataRedis 使用管道 Redis 管道的性能测试 使用管道技术的注...

  • 高级篇之一

    Redis高级功能之分管道技术、消息队列 一、管道技术 我们先来试试管道技术,Redis 管道技术可以在服务端未响...

  • Redis管道

    客户端和Redis使用TCP协议连接。不论是客户端向redis发送命令还是redis向客户端返回命令的执行...

  • redis管道

    redis单个请求与批量操作对比   Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务。这意味...

  • Redis管道

    Redis之管道的使用原文地址: https://blog.piaoruiqing.com/blog/2019/...

  • Redis-管道

    Redis管道的使用原文介绍:http://redis.cn/topics/pipelining.html[htt...

  • go redis

    go 操作redis操作 Pipelining(管道) 发布/订阅 事务

  • Redis管道设计

    在大量请求发生的情况下,缓存本身设计已经足够的快速,这时候你会发现性能瓶颈已经不在于缓存读取上面了,而在于往返的请...

  • redis pipeline 管道

  • 5 redis管道

    什么是redis管道首先看一个例子 public static void test100w(){ 我本机的执行结果...

网友评论

      本文标题:redis管道

      本文链接:https://www.haomeiwen.com/subject/lhwsnxtx.html