万万没想到,Redis多线程版本竟然比原生版本快那么多

日期:2019-10-12 19:40:03   来源:互联网   编辑:小TT   阅读人数:383

万万没想到,Redis多线程版本竟然比原生版本快那么多(图1)

如果我告诉您有一个 Redis 的分支版本,它的性能比原生的 Redis 快 5 倍,而且延迟却降低近 5 倍,你会不会想了解一下这个项目?而如果您不再需要哨兵节点并且您的副本可以接受读取和写入,这将有可能使分片数量减少 10 倍,这样对你的吸引力是不是更大了呢?

我说的这个分支版本,它其实是 Redis 的一个分叉版本,名叫 KeyDB 。KeyDB 是 Redis 开源的多线程分叉版本。本文我们将提供最新的基准结果,并讨论更强大的 KeyDB 实例如何减少集群大小以及简化堆栈。同时我们还将讨论了多线程体系结构,并演练了如何利用它实现性能的提升。

为什么要取个新名字,为什么要做 Redis 的分叉?

凭借着我们不受限制的代码库能力,KeyDB 能够在短时间内取得长足的进步,并且所走的道路将在未来几个月内整个数据库格局。

关于为什么首先搞一个 Redis 分叉的原因,这是因为 KeyDB 和 Redis 在如何发展方面有不同的理念。我们认为易用性、高性能和“内置动力”的方法是创造良好用户体验的最佳方法。尽管我们非常尊重 Redis 维护者,但我们认为 Redis 的方法过于注重代码的简单性,而以牺牲用户的便利性为代价。这导致经常需要借助外部组件和方案来解决很多常见问题。

由于存在意见分歧,因此适合 KeyDB 的功能可能不适用于 Redis。而做一个新的分叉版本可以允许我们探索这一新的路径并实现可能永远不会成为 Redis 一部分的功能。KeyDB 将与上游的 Redis 代码变更保持同步,在适用的情况下,我们还给 Redis 提交错误修复和改进。我们希望这两个项目能够继续发展并相互学习。

最新基准数据

KeyDB 于今年3月推出,尽管我们的性能有所提高,但我们仍然希望它能更快地发展。我们最新的基准数据显示,KeyDB的单个实例的每秒操作数(图范围为53-5.49)比Redis(v5)的单个实例多5倍以上,而延迟(图形范围为4.6-5.1)近5倍:

万万没想到,Redis多线程版本竟然比原生版本快那么多(图2)

万万没想到,Redis多线程版本竟然比原生版本快那么多(图3)

多线程的优势

以下是基准(操作/秒)与使用的线程数对应关系的图表:

万万没想到,Redis多线程版本竟然比原生版本快那么多(图4)

仅将一个线程分配给KeyDB,平均而言,与 Redis 的单个线程实例相比,它仍可保持约5%的性能提升。因此,即使添加了新功能并更改了体系结构,性能也没有受到影响。

多线程架构

KeyDB 通过在多个线程上运行常规的 Redis 事件循环来工作。网络 IO 和查询解析是同时进行的。每个连接在 accept 上分配一个线程。自旋锁保护对核心哈希表的访问。因为哈希表访问非常快,所以此锁的争用较低。事务在EXEC命令的持续时间内保持锁定。模块与GIL协同工作,而GIL仅在所有线程都暂停时才获取。这保持了模块期望的原子性保证。

与大多数数据库不同,核心数据结构是中最快的部分。查询的大部分时间来自解析REPL协议并将数据复制到网络或从网络复制数据。

未来的工作包括允许在连接之后重新平衡与不同线程的连接,并允许多个读取器同时访问哈希表

进一步优化设置

此外,KeyDB 还提供了一些有助于简化用户体验的功能。例如活动副本功能已在最新的稳定版本 5 中广泛采用并在生产中使用。此功能使您能够在两个主节点彼此复制,同时接受读取和写入操作。而且不需要哨点节点来控制故障转移。您将获得很高的可用性,同时最大限度地利用资源。如果尚未平衡对副本节点的读取,则可以使用此选项将吞吐量提高一倍。这意味着从简单的 Redis 主副本设置转移到使用 KeyDB 的多线程活动副本设置,可以将分片需求减少多达10倍。

本文相关词条概念解析:

版本

版本,最初指一种书籍经过多次传抄、刻印或以其他方式而形成的各种不同本子。随着时代的发展,版本也开始应用于影视、软件等事物上,形容对象相同但介绍方法等不同的两个事物。

线程

线程,计算机科学术语,有时也被称为轻量级进程(Light Weight Process,LWP),它是运行中的程序的调度单位。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。线程被包含在进程之中,是进程的一个实体,是CPU调度和分派的基本单位它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。

网友评论
龙城一叶孤
在这部《万万没想到》中,实际上白客的发挥空间是很小的,不同于反派慕容白,主角在整个故事中的成长和变化都是不明显的
2019-10-11 04:11 129
包子不二价
有没有ios8的原生壁纸发给我的,感谢?
2019-10-18 08:54 640
花都小雨88
这跟导演和编剧的能力有关,毕竟如果让段子手去写研究生论文,交出的结果也就跟这部电影的水准差不了多少
2019-10-18 13:39 969
mqcdo2
但你绝不能说白客是屌丝
2019-10-13 15:17 677
星之旅娱乐
有人说这是因为白客本身就是屌丝,这是所谓的本色出演,这点我是不服气的
2019-10-12 23:14 888
esterllaji
同样都是ios12系统版本为什么X就有原生手势操作,而iphone8以下的没有?
2019-10-14 02:06 963
麦克索菲尔
如何评价电影《万万没想到》的男主白客?
2019-10-18 16:05 558
相关阅读
中国“最难吃”的土特产, 吃过3种的是勇士, 全吃过的请受我一拜

中国“最难吃”的土特产, 吃过3种的是勇士, 全吃过的请受我一拜

首先第1种是冬瓜糖,对于这个冬瓜糖在我们小的时候是非常受欢迎

卡帅: 剩下6场每场都是决赛 恒大最大困难在思想上

卡帅: 剩下6场每场都是决赛 恒大最大困难在思想上

卡纳瓦罗10月18日,中超联赛将打响第26轮比赛,广州恒大队

爱吃罐头鱼的收藏喽, 教你详细做法步骤, 出锅真香, 比买的还好吃

爱吃罐头鱼的收藏喽, 教你详细做法步骤, 出锅真香, 比买的还好吃

以前小的时候,父母耕田种地,农闲时会到河里捞鱼,那个时候也是

林更新偷瞄周杰伦究竟怎么回事?林更新偷瞄周杰伦时间过程详解

林更新偷瞄周杰伦究竟怎么回事?林更新偷瞄周杰伦时间过程详解

和女友逛街总爱偷瞄美女的生肖男“爱美之心人皆有之”每个人都会

新耻辱!国青22分钟崩盘1-3惨败印尼,上半场仅1脚射门!对手排名167位

新耻辱!国青22分钟崩盘1-3惨败印尼,上半场仅1脚射门!对手排名167位

北京时间10月17日,中国U19国青与印尼U19国青结束了一

范春晖诗词楹联选编

范春晖诗词楹联选编

作者简介范春晖,字子游,别署辽东布衣、鸿雪堂主人。生于194

不负如来不负卿

不负如来不负卿

只为等你那一世的回眸一笑醉了多少江南的烟雨为你痴情迷了归来的

最受赞赏中国公司榜单: 华为蝉联第一, 华为凭什么?

最受赞赏中国公司榜单: 华为蝉联第一, 华为凭什么?

首先需要说明的是,华为是蝉联了这一奖项!财富网发布《2019

郭富城带方媛看赛马,两人全程十指相扣,幸福羡煞旁人

郭富城带方媛看赛马,两人全程十指相扣,幸福羡煞旁人

近日,郭天王牵手妻子方媛现身香港赛马场观看比赛。当天两人全程

【原创】~少长咸集第08期~点绛唇:一杯醇酒,凭那西风瘦。

【原创】~少长咸集第08期~点绛唇:一杯醇酒,凭那西风瘦。

卷首语:秋天是美丽的也是萧瑟的。秋天像一幅画,秋天像一首诗,