缓存服务器
缓存服务器
TongRDS
产品介绍
TongRDS是一款高性能多并发分布式数据缓存中间件,为企业信息化系统提供数据信息的缓存、分享与同步功能。通过先进的内存分配算法,产品实现了基于内存方式的数据高性能读写、实时稳定数据同步、分布式部署等功能,满足企业分布式与高可用使用场景。TongRDS提供了高度兼容Redis的数据访问接口,并保持优于Redis的读写性能
产品特性
核心优势
- 领先的分布式架构:独创的多主技术,灾备可靠性提升、节点扩容能力大幅度增强;近实时的故障切换能力,避免了主备切换时的选举延迟和服务暂停。
- 高安全性:内核纯自研架构,避免了 Redis 安全漏洞和接口后门,提供了国密加密技以保证更高的数据安全。
- 集中化管理:RDS 企业版针对国内用户需求,专门提供了集中化管理平台,支持可视化的配置、数据维护、监控跟踪和自动恢复能力;
- Redis 全兼容:Redis 全球应用最广的开源缓存中间件,RDS 的全兼容优势,使得客户应用迁移成本几乎为零;
分布式架构
- 高效的并行处理架构,资源利用率优势明显。RDS 采用多线程并行处理架构,能够充分利用现代 CPU 多核技术的并发处理能力。
- 通过多线程的处理能力,性能优势远远领先于 Redis。在处理多个客户端并发请求时性能远远超出 Redis,在 16 客服端线程并发访问时,RDS 的处理能力约为 Redis 的 2.5 倍。
- 用 Java 语言纯自研架构,软硬件兼容能力高。Java 语言在国产环境已得到充分的适配,而 C、C++、Go 等编译型语言在不同平台需要重新编译、适配和测试。对国产环境有很好的兼容性,已通过几乎所有常见的软硬件平台的互信测试。
- 领先的多主分布式架构,提供高可靠性和高稳定性能力。提供了无中断的故障切换,实时热备,无间断的故障恢复能力。
高安全性
- 数据安全:全面支持国密级加密算法;支持连接加密;支持数据使用过程中的鉴权数据加密。
- 架构安全:基于 Java 纯自研,规避开源框架可能带来的隐患,不存在开源Redis 安全漏洞。
- 管理安全:提供集中化管理平台,提供配置、监控、权限控制等能力,取代了Redis 开放管理 API 进行管理控制的漏洞和隐患。
- 传输安全:全面支持国密级加密算法;支持连接加密;支持数据使用过程中的鉴权数据加密。 RDS 的设计是基于非可信网络的设计,从架构上就全面规避了各种网络上可能的风险因素。
安装配置
产品安装包、许可、产品文档等需要联系东方通商务获取,安装配置流程可以参考以下手册初步了解:
达梦Redis
达梦新云缓存数据库是由达梦数据技术(江苏)有限公司自主研发的深度兼容原生Redis的Key-Value数据库,其在并发访问性能上相比原生Redis具有明显优势,可满足业务系统对具有高性能、高可靠性、弹性扩展、数据强一致等特性的Key-Value系统的需求。
单机模式安装
::: tabs
@tab Linux系统
以下将以 CentOS7 系统为例说明安装流程:
修改open files配置:
#编辑/etc/security/limits.conf
vi /etc/security/limits.conf
#在文件结尾增加以下两行参数,保存后重新打开shell终端即可生效
* soft nofile 65535
* hard nofile 65535
下载地址:达梦新云缓存数据库
使用官网提供的RPM包,开始安装:
# 安装命令
rpm -ivh dmncdb_redis-v21.0-20231115_16e58570.x86_64.rpm
# 默认安装到/opt下,进入安装目录
cd /opt/dmncdb_redis/bin
# 启动服务,不指定配置文件直接启动服务,则以默认参数启动服务,其默认监听端口为 6379
./dmncdb_redis /opt/dmncdb_redis/dmncdb_redis.ini
# 如果需要注册系统服务,可以使用安装目录的 bin 文件夹下的注册服务脚本dmncdbredis_service_installer.sh。
# 直接执行 dmncdbred s_service_installer.sh脚本,默认创建并启动一个服务名为 dmncdbredisService,端口号为 6379 的服务。
# 如注册服务需要指定端口和服务名后缀,使用-p 和-n 参数即可。例如创建一个服务名为 dmncdbredisService6380,端口号为 6380 的服务,可以执行以下脚本:
./dmncdbredis_service_installer.sh -n 6380 -p 6380
# 在执行完注册脚本后,使用安装路径的 thirdpart 文件夹下的 redis-cli,使用以下命令连接该服务,即可连接成功。
cd /opt/dmncdb_redis
./redis-cli -p 6380
安装目录介绍,安装完成后在/opt/dmncdb_redis 即可看见对应安装目录详细内容。其中包含bin、thirdpart、doc、conf 文件夹:
- conf:文件夹里面是 dmncdb_redis 服务的配置文件:dmncdb_redis.ini。
- bin:文件夹中,包含 dmncdb_redis 服务的可执行文件、为 dmncdb_redis服务注册系统服务和删除系统服务的 sh 脚本和这些脚本调用的可执行文件。
- thirdpart:第三方插件包含:开源 redis 的 redis-cli,可以用于访问 dmncdb_redis 服务。drivers 文件夹里面包含 java,C(C++),python,GO,C#语言连接dmncdb_redis 驱动。license 文件夹包含所有 dmncdb_redis 服务器与接口使用的第三方代码或插件的 license。
- doc:里面用户手册和安装手册。
@tab Windows系统
以 Windows 10 for x86-64 系统为例说明安装流程:
Windows 安装包是解压即用的,直接解压 dmncdb_redis.zip。建议:安装路径下的目录名称不包含空格和中文。例如在D盘根目录下解压安装包,形成D:\dmncdb_redis 即为dmncdb_redis的安装目录。
用户可以直接运行D:\dmncdb_redis\bin 下面的 dmncdb_redis 来启动服务,默认监听端口 6379。也可以用跟上配置文件绝对路径来指定配置文件启动。
用户如果需要注册系统服务,可以使用安装目录的 bin 文件夹下的注册服务脚本service_install.bat。直接执行 service_install.bat 脚本,默认创建并启动一个服务名为 dmncdbredis,端口号为 6379 的服务。
在控制台中执行 service_install.bat serviceName port
将会根据指定的服务名和端口号,创建服务。例如:创建一个名为myredis,端口号为 6380 的服务,可以执行如下语句:
service_install.bat myredis 6380
在执行完注册脚本后,使用安装路径的 thirdpart 文件夹下的 redis-cli,使用以下命令连接该服务,即可连接成功。
redis-cli -p 6380
注意
如果您在使用 windows 版本的 dmncdb_redis 服务过程当中,出现控制台卡顿不打印服务信息的情况,请您取消 CMD 窗口的插快速编辑模式和插入模式即可。
具体操作如下:在控制台窗口边沿,右击鼠标,选择属性。在选项页签中,取消快速编辑模式和插入模式前面的勾选即可。
主备集群安装
主备集群概述
达梦新云数据库(For Redis)主备集群,可以实现数据多副本 、使用读写分离设置实现压力分流等操作。
达梦新云数据库(For Redis)主备集群还提供了守护插件——dmncdb_monitor。由 dmncdb_monitor 守护的达梦新云数据库(For Redis)主备集群,在主库发生故障时,dmncdb_monitor 配置时间内会选举一个备库为新的主库,以保证集群正常对外提供服务。 如果之前的主库恢复服务,也自动变更为备库。
达梦新云数据库(For Redis)主备集群,最大可以支持 16 个备库节点。集群包括一个主库、1 到 16 个备库以及一个监视器组成。其架构如下图所示:
- 主库(dmncdb_redis)是主备集群中对外提供服务的主要节点。一个主备集群只有一个主机,主机可以接受客户端的读写请求,并将数据同步发送给备机。
- 备库(dmncdb_redis)是主备集群中主机的备份节点。当 dmncdb_redis 配置为备库启动后,主库就会将所有数据打包成 rdb 文件发送给备库,当备库将所有数据读取到内存后,也可以对外提供数据读取服务,降低主库压力。
- 监视器(dmncdb_monitor)是主备集群中所有节点状态的监听者,为主备集群和分布式集群提供自动故障处理,实现高可用。当发现主库出现故障后,在配置时间内,监视器会自动选举一个备库作为新的主库,以保证集群对外正常提供服务。如果旧的主库恢复服务,也自动变更为备库。
组件介绍
达梦新云数据库(For Redis)主备集群组件有 dmncdb_redis 和 dmncdb_monitor。其 中 dmncdb_redis 是核心组件,主库和备库都是 dmncdb_redis 服务。dmncdb_monitor 用来保证集群高可用。
dmncdb_redis
主备同步机制:主从同步有两种机制,全量同步和增量同步。在从库首次加入集群,或者在通信出现问题等情况,导致主从数据库数据差异变大时,会做全量同步。在从库对外服务后,客户端对主库的修改,会以命令流的方式发送到从库。
- 全量同步:主库会将当前的数据,形成快照 rdb 文件,发送给从库,从库在接收完 rdb文件后,将 rdb 文件加载进内存中。从库加载完成后才可以对外服务。
- 增量同步:主库的修改,会以命令流的方式,增量发送至从库,在从库执行一遍这些命令,以保证主从数据的一致。
dmncdb_monitor
启动参数说明:在启动 dmncdb_monitor 时,通过--conf 参数指定 dmncdb_redis.ini,启动dmncdb_monitor 服务即可。
主备集群搭建
主备集群的搭建,可采用修改配置文件启动方式、命令的方式、自动部署集群脚本方式。本章将以修改配置文件、命令的方式和运行自动部署主备集群脚本的方式,示例dmncdb_redis 主备集群搭建。
安装前确认事项
在部署达梦新云数据库(For Redis)主备集群之前,用户需要确认以下环境:
- 按照单机版中的说明准备系统配置;
- 不同服务器节点的时间要一致;
- 为了避免使用异常,主备节点的 dmncdb_redis 使用同一个版本;
节点规划
本文以搭建一主 2 备集群,并将监视器配置在一个备库部署的服务器上。节点规划信息如下表所示:
节点 | 地址 |
---|---|
dmncdb_redis(主机) | 10.14.1.20:6379 |
dmncdb_redis(备机 1) | 10.14.1.21:6380 |
dmncdb_redis(备机 2) | 10.14.1.22:6380 |
dmncdb_monitor | 10.14.1.22:26379 |
在 10.14.1.20、10.14.1.21、10.14.1.22 三台服务器安装 dmncdb_redis 实例,详细参考单机模式安装流程。
启动主机
在主机部署服务器节点:10.14.1.20 的/opt/dmncdb_redis/bin 目录下,执行以下命令启动主机。
./dmncdb_redis ./dmncdb_redis.ini
启动备机
在 10.14.1.21、10.14.1.22 服务器上分别修改 dmncdb_redis.ini 配置文件,配置 replicaof 和 port 参数。本次示例参数为:
replicaof 10.14.1.20 6379
port 6380
在备机部署节点的/opt/dmncdb_redis/bin 目录下,分别执行下面的命令启动备机
./dmncdb_redis ./dmncdb_redis.ini
此时集群已经搭建完成,可以对外服务。使用 redis-cli 连接主节点,可以查看到其节点信息。
10.14.1.20:6379> info
启动 dmncdb_monitor
修改 10.14.1.22 服务器 /opt/dmncdb_redis/monitor 目录下的dmncdb_monitor.ini 配置文件。
port 26379
sentinel add mymaster 10.14.1.20 6379 1
启动 dmncdb_monitor。
./dmncdb_monitor --conf=dmncdb_monitor.conf
使用 redis-cli 连接主机,使用 info Replication 命令查看主备启用成功。
10.14.1.20:6379> info Replication
# Replication
role:master
connected_slaves:2
slave0:ip=10.14.1.21,port=6380,state=online,offset=406,lag=1
slave1:ip=10.14.1.22,port=6380,state=online,offset=420,lag=0
master_replid:f3063e6c9a095d857e5596e1450906534980a7fe
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:420
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:420
使用redis-cli 连接 dmncdb_monitor 节点,使用 info Sentinel 命令查看dmncdb_monitor 信息。
10.14.1.22:26379> info Sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=10.14.1.20:6379,slaves=2,sentinel=1
自动部署集群
使用 rpm 包安装 dmncdb_redis 后,在目录/opt/dmncdb_redis/bin 下面,有自动安装部署主备集群的脚本:dmncdbredis_masterfollower_installer.sh。依次按照脚本的提示信息输入对应的集群信息即可。
脚本执行步骤说明
- 进入目录/opt/dmncdb_redis/bin,运行自动安装部署主备集群脚本。
./dmncdbredis_masterslave_installer.sh
- 跟进脚本运行提示,输入主库 IP、port。如果主库 IP 不是当前 IP,需要输入目标 IP 的 root 账号密码以创建 ssh 连接,并进行必要安装文件拷贝。
- 输入备库的数量。
- 依次输入各个备库的 IP 和 port。如果备库 IP 不是当前 IP,需要输入目标 IP 的 root 账 号密码以创建 ssh 连接,并进行必要安装文件拷贝。
- 输入 dmncdb_monitor 对应的 IP 和 port。
- 脚本将按照部署配置文件,注册各个节点的 dmncdb_monitor 和 dmncdb_redis 服务并将其启动。脚本执行完,集群可以直接对外提供服务。