完整文章见: https://zhuanlan.zhihu.com/p/381670563
Kvrocks 是基于 RocksDB 之上兼容 Redis 协议的 NoSQL 存储服务,设计目标是提供一个低成本以及大容量的 Redis 服务,作为 Redis 在大数据量场景的互补服务,选择兼容 Redis 协议是因为简单易用且业务迁移成本低。目前线上使用的公司包含: 美图、携程、百度以及白山云等,在线上经过两年多大规模实例的验证。
项目核心功能包含:
GitHub 地址: https://github.com/kvrockslabs/
1
zagfai 2021-06-17 23:55:18 +08:00 1
门槛低了越做越多这些开源项目那意义在哪?
|
2
akira 2021-06-18 01:10:44 +08:00
赞一个先
|
3
airyland 2021-06-18 04:11:58 +08:00
似乎 pika tendis 也是类似方案,好奇优势差异是什么?
|
4
haozes 2021-06-18 11:14:05 +08:00
🔥前留名
|
6
hulk OP @airyland
pika 功能基本一样,有部分结构设计也来自 360 的 balckwidow 项目,然而为什么不直接使用 pika 的几个主要原因: * Redis 语义兼容问题,我们希望更加接近 Redis 而不是每个类型都是独立的 DB * 主从同步设计上,pika 使用 rsync 容易成为问题定位的黑盒,kvrocks 直接基于 rocksdb 的 checkpoint 来实现,同时我们同步时基于 RocksDB WAL 不是 binlog,不需要回放,所以同步性能也会更好 * 功能设计上,容量大之后意味着业务混用会变多,我们希望业务之间数据可以隔离,kvrocks 主要是通过 namespace 来实现 * profiling 能力,磁盘 kv 相比于内存 Redis 明显的问题是毛刺点会因为磁盘任务而增多,定位具体毛刺点的 profiling 能力就显得更加重要,我们通过允许对命令级别的慢请求进行 profiling 日志收集和输出,方便定位问题 * 代码质量,这个比较主观,这里不多说,有兴趣可以自己去看 看 kvrocks 、pika 代码 其他还比如为了解决全量 compaction 带来的毛刺点问题,我们也对自身 compaction 检查策略进行一些优化。Tendis 主要是集群方案过于复杂,真的不确定外部有多少公司真能用起来。 |
7
zagfai 2021-06-21 17:02:04 +08:00
@hulk 所以解决的问题是什么?我几年前习惯用 redis 。。千万级别用户 DAU 的案例没啥不能解决的。
然后小项目我是懒到 redis 都不用了,啥都直接扔 mysql,可以说百万日活级创业级项目都难以出现什么瓶颈。 |
8
hulk OP @zagfai 对于大部分公司来说,如果存储的数据量太小,确实不是瓶颈。很多公司的 Redis 集群回到百 G 甚至是 T 级别,那么成本和实例容量是一个比较大的挑战。而 MySQL 其实也是选择,但使用场景和性能不是一个维度的,比如很多业务就是一个简单的 KV + 过期场景,使用 MySQL 或者其他选型也不是问题,那么就需要业务去实现这些逻辑。
|
9
hulk OP 另外,门槛低不低这个问题先不讨论,既然开源出来能够让百度、携程、白山云采用肯定是有自身的优势和设计理念,而不同设计做出来的系统当然也完全不是一回事。每个公司对于这方面的诉求不一样,就像 OS/Kernel 也同样一堆类似的选型,选择自己合适才是最重要。
包含发文章之前,我们也知道一定会有人想知道差异点是什么,选择不在里面去说明,主要是从我们角度来说,没办法完全保证客观去对比,所以更希望是有人抛出来的时候,再来公开的讨论而不是写在文章里面到处传播。 |
10
zagfai 2021-06-21 17:22:03 +08:00
别说什么能够让百度携程白云山采用这种话。。。采用量是多少。。 一个小团队试一试?那多数是因为 kpi 问题,没事找事做的。
Redis 数百 G 上 T 是啥问题?是对 Redis 误用的问题。上百 G 的 Redis 如果不是千万日活级别的 api,多数是被滥用,更可能是需要 MongoDB 。 我喷点其实在于,你列举出的那些项目核心功能,哪个 Redis 没有?如果有的话,差别在哪?或者说,你们这跟 Redis 有啥本质区别? |
11
hulk OP 请阅读完再来说?有啥区别? 一个数据在磁盘,一个在内存,你觉得有什么区别? 另外,实例数有千级别,够不够?
最后一条回复你,开源并不是求着你用。 |
13
dvd888 2022-06-20 16:10:20 +08:00
没有了? github 上不见了。
|
14
hulk OP @dvd888 贡献到 Apache 了,GitHub 地址: https://github.com/apache/incubator-kvrocks
|