kedis 持久化大容量 kv 存储服务器开源项目

我要开发同款
匿名用户2017年12月01日
52阅读
开发技术C/C++
所属分类服务器软件
授权协议MIT

作品详情

1.Kedis-Server是什么

kedis-server是一个以RocksDB为存储引擎,支持Redis协议,并且支持大部分常用的Redis命令的一个持久化大容量kv存储服务器

2.Redis有什么问题

总的来说,Redis是一个非常优秀的内存kv存储服务器,支持非常丰富的数据结构,而且性能也非常棒。但是在实际使用Redis的时候,还是会碰到如下的一些问题:

  1)单个Redis实例的数据容量受限于机器内存的大小,而且由于Redis主备复制时需要fork一个子进程来获取内存的snapshot,所有单实例的maxmemory最好不要超过机器内存的一半,不然会用到swap,速度很慢,影响线上的服务

  2)如果打开Redis的持久化功能,对于大数据量的Redis重启,由于要加载所有数据到内存,启动时间很长

  3)Redis的主从复制断开重连时,只能保持很少的历史数据,如果断开时间比较长,又需要进行一次全量的数据复制,非常影响线上服务

3.用于kedis-server替换基于proxy模式的RedisCluster方案里面的Redis

我们做了一个基于proxy的rediscluster方案,用来存储对持久化需求不是很急切的kv存储业务,然后就想用一个持久化版本的类Redis存储服务器来替换Redis,这样就可以实现一个持久化版本的kv存储cluster方案

4.业界其他的类Redis持久化存储方案

现在国内用的最广泛的类Redis持久化kv服务器有ssdb和pika,但这两个项目有一些不是很满足我们要求的地方:

1)对于ssdb,是用一个和Redis协议不一样的网络协议,而且命令也和Redis不太一样,存储引擎也是用了相比RocksDB性能比较差的LevelDB

2)对于pika,使用了Redis的协议和命令,但对于不同的数据类型,可以允许key重复,然后zset的score不支持double类型,依赖的库也比较复杂

5.Kedis-Server的特点

1)用RocksDB作为存储引擎

2)支持Redis协议和大部分常用的Redis命令

3)主从复制支持全量和增量复制模式,用binlog进行增量数据同步,即时断开很长的时间,也能用增量同步数据

4.zset支持的score支持double类型,完全兼容Redis命令

5.编译简单,要用一个命令就可以编译服务器

6.更多特性详见项目文档

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论