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.更多特性详见项目文档
评论