【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.


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

查看所有标签

猜你喜欢:

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

编程之法

编程之法

July / 人民邮电出版社 / 2015-9-1 / 49.00元

本书涉及面试、算法、机器学习三个主题。书中的每道编程题目都给出了多种思路、多种解法,不断优化、逐层递进。本书第1章至第6章分别阐述字符串、数组、树、查找、动态规划、海量数据处理等相关的编程面试题和算法,第7章介绍机器学习的两个算法—K近邻和SVM。此外,每一章都有“举一反三”和“习题”,以便读者及时运用所学的方法解决相似的问题,且在附录中收录了语言、链表、概率等其他题型。书中的每一道题都是面试的高......一起来看看 《编程之法》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

SHA 加密
SHA 加密

SHA 加密工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具