哈喽,大家好,我是指北君
。
说到开源分布式键值数据库,大部分程序员们第一个想到的是 Redis 。而 Redis 部署在内存上,成本高——特别是大容量的 Redis 的集群部署成本。
那么有没有一个可替代 Redis 的更廉价的部署方案呢?
答案是:Kvrocks,其部署在 SSD ,兼容 Redis 协议。
下面给小伙伴儿们介绍下Kvrocks。
Kvrocks 简介
Kvrocks 是一个分布式键值 NoSQL 数据库,使用 RocksDB 作为存储引擎,兼容 Redis 协议。
与 Redis 相比,Kvrocks 旨在降低内存成本并增加功能。复制和存储的设计灵感来自rocksplicator和blackwidow。
目前线上使用的公司包含: 美图、携程、百度、雪球以及白山云等。
Kvrocks 具有以下主要功能:
- Redis协议,用户可以使用redis客户端访问kvrocks
- 命名空间,类似于 redis db,但每个命名空间使用令牌
- 复制,异步复制使用像 MySQL 这样的 binlog
- 高可用,支持redis sentinel 在主从失败时进行故障转移
- 集群模式,集中管理但兼容Redis集群客户端访问
Kvrocks 支持以下平台:
- centos 6/7
- ubuntu
- macosx
Kvrocks 快速使用
要求
- g++(c++11 需要,版本 >= 4.8)
- autoconf automake libtool snappy
构建和使用
- 安装 snappy
sudo yum install -y epel-release && sudo yum install -y git gcc gcc-c++ make snappy snappy-devel autoconf automake libtool which gtest gtest-devel
sudo apt update
sudo apt-get install gcc g++ make libsnappy-dev autoconf automake libtool
brew install autoconf automake libtool snappy googletest
- 构建
$ git clone --recursive https://github.com/kvrockslabs/kvrocks.git
$ cd kvrocks
$make -j4
- 运行 kvrocks
$ ./src/kvrocks -c kvrocks.conf
性能表现
硬件
- CPU:48 核 Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
- 内存:32 GiB
- NET:英特尔公司 I350 千兆网络连接
- 磁盘:2TB NVMe Intel SSD DC P4600
Benchmark Client:多线程redis-benchmark(unstable branch)
- 命令的 QPS
kvrocks:worker = 16,基准测试:8 个线程/512 个 conns/128 个有效负载
延迟:99.9% < 10ms
- 不同 payload 上的 QPS
kvrocks:worker = 16,基准测试:8 个线程/512 个 conns
延迟:99.9% < 10ms
- 不同 worker 上的 QPS
kvrocks:worker = 16,基准测试:8 个线程/512 个 conns/128 个有效负载
延迟:99.9% < 10ms
指北君有话说
Kvrocks 实现了一种兼容 Redis Cluster 客户端的中心化集群管理方案,既节省了硬件费用开销,又能通过中心化的方式让集群管理更简单更轻量。
开源指北,立志做最好的开源分享平台,分享有趣实用的开源项目。
欢迎加入交流群,你可以摸鱼、划水、吐槽、咨询。
还有简历模板、各种技术面试资料等100G的资源等着你领取哦。
公众号回复888马上加入,快来一起来聊一聊吧!
以上就是本次推荐的全部内容,我是指北君
,感谢各位的观看。
网友评论