磁盘 Redis - Kvrocks 设计与实现

2022-03-02 09:10:15 +08:00
 hulk

https://mp.weixin.qq.com/s/K9KVJR5sW7bsYrF4_dUV5g

这篇文章从关键设计和内部实现来分析,希望对于想知道如何实现磁盘类型 Redis 及想熟悉 Kvorcks 设计和实现的人带来一些帮助。

2500 次点击
所在节点    程序员
16 条回复
gabon
2022-03-02 09:19:56 +08:00
在用,性能基本没有很大损失情况下成本降低了很多。
hulk
2022-03-02 09:46:28 +08:00
@gabon Kvrocks 用户吗
gabon
2022-03-02 10:10:22 +08:00
@hulk 公司内部基于 kvrocks 封装的
hulk
2022-03-02 10:15:11 +08:00
@gabon cool, 如果没有加入 Kvrocks 社区交流群可以加我微信: hulkdev, 我拉你进群,现在超过 200 个人,只能邀请。
mekingname
2022-03-02 10:43:29 +08:00
请问 Kvrocks 在性能上,有跟 Redis 做过对比吗?有哪些优势哪些不足?
hulk
2022-03-02 10:51:27 +08:00
@mekingname kvrocks 项目的 README 里面有一些 benchmark 数据,然后吞吐由于是多线程会比 Redis(包含 6.0 以上的多线程 IO)高,但读延时如果 miss cache 到磁盘肯定延时会比 Redis 高一些。本身是作为 Redis 的互补而不是替换,磁盘类型相比于 Redis, 单实例大小可以几百 G 同时成本基本是 Redis 1/10 以下。
zhengxiaowai
2022-03-02 11:33:33 +08:00
加微信了,看看能不能贡献几行代码 :-)
hulk
2022-03-02 11:45:18 +08:00
@zhengxiaowai wow ,太期待了~
aper
2022-03-02 11:55:39 +08:00
和 Pika 比有什么优势呢?
hulk
2022-03-02 12:07:42 +08:00
@aper 之前 GitHub Discussion 上由一个讨论: https://github.com/KvrocksLabs/kvrocks/discussions/319

整体上,对于大多数可能关注的是功能的差异。除此了上面的讨论之外我自己觉得最重要的几个点:
* 社区是足够开放或者更加遵循开源准则,社区共识大于代码,尽量所有设计和讨论都在社区进行,包含 roadmap
* 对于代码的态度,至少 Kvrocks 不管在 PR 合并再 Commit Log 都是很严谨的讨论和对待
* 明确的 roadmap, 社区要有明确的方向,而不是走一步看一步
linksNoFound
2022-03-02 14:13:59 +08:00
考虑过磁盘寿命的影响吗
hulk
2022-03-02 14:52:08 +08:00
@linksNoFound Redis 也是一样,靠复制和集群分配来解决可用性问题
linksNoFound
2022-03-02 15:14:41 +08:00
@hulk 不,频繁读写状态下,固态集群会高速损失 PE 寿命,磁盘集群会影响磁头和盘片的寿命。redis 在内存常驻,内存是易失性闪存,和固态不一样,内存本身就是能承载高速读写的,对寿命影响很小。
hulk
2022-03-02 15:16:22 +08:00
嗯,其实我的意思是高可用不会依赖单机硬件,另外 Redis 数据全内存没问题,重启加载的 RDB/Aof 还是从磁盘恢复,所以也是同样的问题。
sampeng
2022-03-02 17:13:50 +08:00
这个思路挺好的。。其实 99%的业务不需要 redis 那么极端的性能优化。需要的,成本是吃不消的
hulk
2022-03-02 17:53:16 +08:00
嗯,是的。除了要求低延时的,中间还有很多高容量,但延时可以有一点妥协空间的场景。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/837321

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX