【Redis】pipeline管道打包处理模式

栏目: 数据库 · 发布时间: 5年前

内容简介:Redis本身是一个cs模式的tcp server, client可以通过一个socket连续发起多个请求命令。 每个请求命令发出后client通常会阻塞并等待redis服务端处理,redis服务端处理完后将结果返回给client。由于我们知道Redis非常快,这种发送模式中的性能瓶颈其实在于请求传输速度,就算redis server端有很强的处理能力,也由于收到的client消息少,而造成吞吐量小。我们可以修改一种处理模式:通过pipeline方式将client端命令一起发出,redis server会处

Redis本身是一个cs模式的tcp server, client可以通过一个socket连续发起多个请求命令。 每个请求命令发出后client通常会阻塞并等待 redis 服务端处理,redis服务端处理完后将结果返回给client。

由于我们知道Redis非常快,这种发送模式中的性能瓶颈其实在于请求传输速度,就算redis server端有很强的处理能力,也由于收到的client消息少,而造成吞吐量小。我们可以修改一种处理模式:

通过pipeline方式将client端命令一起发出,redis server会处理完多条命令后,将结果一起打包返回client,从而节省大量的网络延迟开销。

下面以 Java 的客户端jedis来测试pipeline的效果。

Pipeline pipeline = jedis.pipelined();  
long start = System.currentTimeMillis();  
for (int i = 0; i < 10000; i++) {  
    pipeline.hset("server", "" + i, "" + i);  
}  
List<Object> results = pipeline.execute();  
long end = System.currentTimeMillis();  
System.out.println("Pipelined SET: " + ((end - start)/1000.0) + " seconds");

测试的结果采用pipeline方式,效率几乎与mset一样,每秒插入约15万数据,但内存占用仅为mset的1/3.


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web标准设计

Web标准设计

刘杰(嗷嗷) / 清华大学出版社 / 2009-1 / 75.00元

一扇经常开启的门的铰链不需要润滑油。 一条湍急的河流不会变得污浊。 无论是声音还是想法都不可能在真空中传播。 Web标准如果不用就会腐朽。 这世界真奇妙! 专题页面:http://www.aoao.org.cn/book/web-standards-design/一起来看看 《Web标准设计》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具