博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
为什么开发kedis-server
阅读量:7246 次
发布时间:2019-06-29

本文共 986 字,大约阅读时间需要 3 分钟。

1. Kedis-Server是什么

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

项目地址:

2. Redis有什么问题

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

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

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

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

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

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

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

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

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

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

5. Kedis-Server的特点

  • 用RocksDB作为存储引擎
  • 支持Redis协议和大部分常用的
  • 主从复制支持全量和增量复制模式,用binlog进行增量数据同步,即时断开很长的时间,也能用增量同步数据
  • zset支持的score支持double类型,完全兼容Redis命令
  • 编译简单,要用一个命令就可以编译服务器
  • 更多特性详见项目文档

转载地址:http://pdbbm.baihongyu.com/

你可能感兴趣的文章
动态规划-矩阵链乘
查看>>
linux awk命令详解
查看>>
MySQL备份和还原系列二:cp冷备份 和 mysqldump
查看>>
如何在Linux python中使用tab补全
查看>>
网络设备配置与管理----调试Cisco Catalyst交换机
查看>>
Java中的随机类Random
查看>>
浅析计算机的原理(一)
查看>>
jmc、jcmd和jfr介绍
查看>>
利用LVM增加根分区大小
查看>>
kafka 文档 (一)
查看>>
zookeeper学习之zkclient事件监听<十>
查看>>
【笔记】如何做好一场技术演讲——观点烙刻
查看>>
Laravel学习一
查看>>
快速搭建discuz论坛系统
查看>>
分享50张非常精美的Apple主题桌面壁纸(下篇)
查看>>
修改mysql5.7.16的密码
查看>>
923A - 你应该看的书
查看>>
storyboard强大利器
查看>>
LAMP论坛搭建
查看>>
我的梦里
查看>>