图片

作者 | JiekeXu

来源 |公众号 JiekeXu DBA之路(ID: JiekeXu_IT)

如需转载请联系授权 | (个人微信 ID:JiekeXu_DBA)

大家好,我是JiekeXu,江湖人称“强哥”,青学会MOP技术社区联合创始人,荣获Oracle ACE Pro称号,墨天轮MVP,墨天轮年度“墨力之星”,拥有Oracle  OCP/OCM 认证,MySQL 5.7/8.0 OCP认证以及金仓KCA、KCP、KCSM、PCA、PCTA、OBCA等众多国产数据库认证证书,今天和大家一起来看看 国产非关系型数据库 Eloqkv 初体验,欢迎点击下方“JiekeXu DBA之路”公众号名片可关注我的微信公众号,然后点击右上方三个点“设为星标”置顶,更多干货文章才能第一时间推送给你!后台回复【加群】,添加我个人微信拉你进群交流学习。

前  言

数据库国产化是这两年的一个热门话题,各行各业都在进行国产化,甚至各种类型的数据库也要进行国产化,Oracle、MySQL、SQL  Server、DB2 等关系型数据库进行国产化毋庸置疑,但之前有位朋友说他们的客户 MongoDB、Redis  等非关系型数据库也要进行国产化,这让我很吃惊。以前也了解过国内做文档的非云的国产数据库有 SequoiaDB 巨杉数据库, Redis 非云环境的替代品有 360 公司开源的 Pika 数据库, 而去年底偶然的机会了解到国内有一家叫晨章数据的公司也在做这两款数据库的国产化替代方案,并且今年 3 月份宣布开源了其公司的三款产品。

EloqKV 简介

2025 年 3 月 6 日,数据库初创公司晨章数据发布了基于数据基层创新架构的三款分布式数据库产品,分别是兼容Redis的分布式KV事务数据库 EloqKV,兼容MySQL的分布式关系型数据库 EloqSQL,以及兼容MongoDB的分布式文档数据库 EloqDoc,并宣布产品全面开源。https://github.com/eloqdata

今天主要是先来看看 EloqKV,兼容 Redis 还是比较受欢迎的,也是我感兴趣的。EloqKV 不仅仅是一个内存缓存,它还是一个功能齐全、符合 ACID 的分布式事务数据库。无需单独的 SQL + Redis 设置,告别缓存一致性挑战。EloqKV  可以跨多个存储层智能地管理数据,从而优化性能和成本。热数据保留在内存中以实现闪电般的访问,暖数据移动到 SSD  以实现平衡性能,冷数据持久保存在对象存储中,同时保持无缝访问。这种多层方法大大降低了 TCO(总拥有成本)。

下载 EloqKV

我们通过如下网址下载 EloqKV

https://www.eloqdata.com/download/eloqkv

下载的安装包名称:eloqkv-0.8.12-rhel7-amd64.tar.gz

安装 EloqKV

EloqKV 兼容 RHEl 7、8 和 9,Ubuntu 20.04、22.04 和 24.04,我这里使用以前的 CentOS 7.6 进行安装。成功下载正确的二进制文件后,上传至服务器,将其解压缩到自定义的 /backup/eloqkv目录中。

# cd /backup/eloqkv
# tar -zxvf eloqkv-0.8.12-rhel7-amd64.tar.gz
# cd EloqKV/
# cd conf/

参数调整

EloqKV 使用配置文件来自定义设置。在安装目录下 conf/eloqkv.ini 中提供了一个例子。下面是一个如何配置 EloqKV 在本地机器上运行的示例。

注:设置 ip 字段设置为 127.0.0.1 将阻止外部访问 EloqKV。建议将 ip 自 服务器的实际 IP 地址(如果你想从另一台机器访问 EloqKV)。还要注意,如果没有用户指定,EloqKV 会自动为其参数设置合理的默认值。因此,如果你对某个参数有疑问,请不要指定它在配置文件中。

启动 EloqKV 服务

cd /backup/eloqkv/EloqKV
./bin/eloqkv --config=conf/eloqkv.ini

EloqKV 兼容 Redis 协议,我们可以使用任何 Redis 客户端连接到 EloqKV,当然也可以使用 EloqKV 自带的客户端 eloqkv-cli 来连接。

redis-cli -h 127.0.0.1 -p 6379

eloqkv-cli -h 127.0.0.1 -p 6379

SET key1 "Hello, EloqKV!"  
GET key1

启用持久数据存储

EloqKV  支持与可插拔数据存储的集成,即使 EloqKV  服务停止,也能实现数据持久化。此功能有助于实现分层存储策略,允许热数据驻留在内存中以便快速访问,而冷数据可以卸载到磁盘。当前的 EloqKV  版本包括一个本地 RocksDB 存储引擎。您可以通过编辑来打开它 eloqkv.ini 并重启 EloqKV。

enable_data_store=on

请注意,启用持久存储会消耗 CPU 资源,定期将内存中的记录刷新到 kv 存储。因此,减少 core_num 数量。

启用 WAL 以实现持久性

通过启用预写日志记录 (WAL),EloqKV 可以实现持久性,即在系统崩溃的情况下,所有写入都将被记录下来,数据不会丢失。WAL 需要与持久数据存储结合使用才能正常工作。 编辑 eloqkv.ini 并重启 EloqKV 以启用 WAL

enable_wal=on

设置集群

设置 EloqKV 集群非常简单。只需在不同的机器上启动多个 EloqKV 实例,每个实例都提供了一个配置文件,其中节点列在 cluster 部分。

例如,假设我们在 192.168.75.20、192.168.75.21 和 192.168.75.22 上设置一个具有 3 台服务器的集群:

ip_port_list=192.168.75.20:6379,192.168.75.21:6379,192.168.75.22:6379

现在,你可以将客户端连接到集群中的任何一台服务器,并享受增加的容量。数据将自动分片。默认情况下,如果数据位于另一个节点上,则服务器将自动从其他服务器获取数据。你以禁用自动重定向并遵循  Redis 集群协议,让 Redis 集群感知客户端将查询路由到适当的节点。

[local]
auto_redirect=false

Eloqctl 工具

eloqctl 是专为 EloqKV 集群运维而设计的强大工具。使用 Eloqctl,您可以轻松管理日常数据库任务,例如部署、启动、停止、升级和停用  EloqKV 集群,以及配置集群参数。eloqctl 支持部署各种集群类型,包括 EloqKV 事务集群、EloqKV 日志集群、Cassandra 等持久化存储集群以及相关的监控系统。

当配置为集群时,主节点发生故障,EloqKV  可以自动故障转移,备节点将被选为新的 Leader 节点来接收写入工作负载。要使客户端对主故障转移透明,请在 EloqKV  集群前面部署代理,或使用 Redis 集群 SDK 连接到 EloqKV。EloqKV Proxy 是一个用 Go 编写的高性能代理服务器,旨在无缝管理多个 EloqKV 集群。

Eloqctl 常用命令

检查集群状态

eloqctl list --查看集群名称,默认为 eloqkv-cluster

eloqctl status ${cluster_name}

启动集群

eloqctl start ${cluster_name}

--启动指定节点

eloqctl start --nodes node1_ip:node1_port,node2_ip:node2_port ${cluster_name}

关闭集群

eloqctl stop ${cluster_name}

--强制关闭集群

eloqctl stop ${cluster_name} -f

--停止除 Monitor 之外的所有组件

eloqctl stop ${cluster_name} -a

停止监控器

eloqctl monitor stop ${cluster_name}

如果使用密码部署集群,则上述所有命令都需要添加 –password

eloqctl stop ${cluster_name} --password xxxxx

EloqKV 的已知限制

1. 与每个键关联的值限制为最大大小 256MB。

2. RocksDB 持久化存储引擎目前不支持复制,因此当节点发生故障时,数据可能不再可用。为了实现高可用性,请考虑改用 Cassandra 或 DynamoDB。

3.  Redis 在单个线程中运行数据作,以串行方式执行包含在 MULTI/EXEC 中的事务。EloqKV 支持并发事务,因此在 EloqKV 中,事务可能会因冲突而中止(即失败)。用户不能假设即使在单节点情况下,所有 MULTI/EXEC 事务也总是返回成功。

4. set 命令不支持过期选项。注意:第二、四条限制目前已经支持了。

参考链接

https://www.eloqdata.com/eloqkv/install-from-binaryhttps://www.eloqdata.com/eloqkv/configurationhttps://www.eloqdata.com/eloqkv/kvstore\_compatibilityhttps://mp.weixin.qq.com/s/04XtgAuBaFgHOipf627FcA

全文完,希望可以帮到正在阅读的你,如果觉得有帮助,可以分享给你身边的朋友,同事,你关心谁就分享给谁,一起学习共同进步~~~

 欢迎关注我的公众号【JiekeXu DBA之路】,一起学习新知识!
——————————————————————————
公众号:JiekeXu DBA之路
墨天轮:https://www.modb.pro/u/4347
CSDN :https://blog.csdn.net/JiekeXu
ITPUB:https://blog.itpub.net/69968215
腾讯云:https://cloud.tencent.com/developer/user/5645107
——————————————————————————

图片

2024 年公众号 JiekeXu DBA之路历史文章合集

2023 年公众号 JiekeXu DBA之路历史文章合集

2022 年公众号 JiekeXu DBA之路历史文章合集

2021 年公众号历史文章合集

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐