帮助与文档

我们为你提供丰富、详尽的使用指南以及产品文档

Redis standalone on QingCloud AppCenter 用户手册

描述

Redis 是一个使用ANSI C编写的开源、支持网络、基于内存、可选持久性的键值对存储数据库。

Redis standalone on QingCloudRedis 封装成 App,采用 Redis 最近的稳定版本 3.2.9 构建,支持在 AppCenter 上一键部署,在原生 Redis 的基础上增加了其易用性、高可用的特性,免去您维护的烦恼。细致说来,具有如下特性:

  • 高可用性。

    Redis standalone on QingCloud 集成 Redis Sentinel 机制,支持秒级主从切换,并提供一个对外的读写 vip,在保证高可用性的同时,无需手动切换主节点 IP 地址。

  • 支持节点的纵向和横向扩容。

    Redis standalone on QingCloud 支持单节点、双节点和三节点部署方式,只有多节点部署形式包含主从自动切换的功能。可以从单节点增加节点到多节点,而无需暂停当前 Redis 服务。也可以从多节点缩小到单节点,此时会导致服务的短暂不可用。

    目前,各个版本支持的节点伸缩数:

    1、Redis 5.0.3 - QingCloud 1.2.1 版本支持单节点、双节点和三节点的节点伸缩

    2、其他版本支持单节点和三节点的节点伸缩。

  • 一键部署。

    无需额外配置,可以立即部署一个 Redis 服务

  • 同城多活

    Redis 5.0.3 - QingCloud 1.2.1 版本支持同城多活,在 北京3区广东2区 部署 app 的用户可以选择同城多活,来实现业务容灾

部署 Redis standalone 服务

为了您的数据安全,目前 Redis standalone on QingCloud 需要部署在私有网络内。请您在部署服务之前,先创建一个私有网络。

一. 选择基本配置

​ 填写集群的名称,描述,选择应用的版本 Redis 5.0.3 - QingCloud 1.2.1 (也可以根据需求选择其他版本,这里以该版本为例),计费方式及自动备份时间您可以根据需求选择,自动备份时间默认关闭。

服务名称

广东2区北京3区 的用户可以按照需求选择「多可用区部署」或「单可用区部署」

服务名称

二. 配置节点

​ 配置节点,根据业务需要选择节点类型、内存、磁盘大小和数量(后续可以随时调整),单节点集群仅供测试使用,正式环境建议使用多节点保证高可用。

配置节点

三. 选择私有网络

​ 在此选择您在开始创建好的私有网络。 ​

1、对于 广东2区北京3区 创建集群的用户需要注意,集群的部署方式应与私网的部署方式保持一致,需要同时为 「多可用区部署」或者同时为「单可用区部署」
2、节点之间的防火墙必须放行 TCP/22 和 TCP/6379 这两个端口,否则会导致服务异常。

选择私有网络

四. 配置 Redis 环境参数

Redis Standalone on QingCloud 提供了 Redis 大部分配置参数,您可以在此根据需要修改相应的参数。

配置环境变量

  • requirepass : 如果您想为您的 Redis 服务设置密码,请在此填写,注意密码长度以保证安全, Redis 5.0.3 - QingCloud 1.2.1 添加了对密码的限定,可由数字、字母或 !@#$%^&*()./; 组成,且最少6位。

  • 禁用 FLUSH 命令 : 为了兼容之前版本的 app ,默认是不禁用 FLUSHALL 和 FLUSHDB 命令的,但是我们强烈建议您在生产环境下禁用该命令,该命令的误操作会对数据造成不可恢复的丢失。

五. 部署

​ 阅读并同意青云 AppCenter 用户协议之后即可马上部署您的应用。

应用详情

​ 部署完成后您将看到如下信息

集群信息

  • 服务端口信息

    Redis standalone on QingCloud 提供一个读写IP,此IP始终指向主节点。当发生主从切换时,此IP将指向新的主节点,无需手动更改主节点IP

节点实时角色

Redis 5.0.3 - QingCloud 1.2.1 新增了 节点实时角色 一栏,可以非常方便且实时的获取集群中节点的主从状态

节点角色

伸缩节点

  • 删除节点

​ 您可以从多个节点减少到一个节点,由于您可能删除主节点,会造成服务的短暂不可用,所以请在服务压力较小的情况下减少节点,剩下的节点就会以主节点继续提供服务。

Redis 5.0.3 - QingCloud 1.2.1 版本的用户可以先根据 节点实时角色 判断集群的节点角色,防止删掉主节点,造成集群服务的短暂不可用。伸缩节点伸缩节点 ​ ​

  • 增加节点

​ 您可以从单节点增加到多节点,增加节点的过程中服务不会停止。为在线升级方便,从单节点增加到多节点后,集群将自动拥有主从切换的能力,无需任何额外操作。​ ​伸缩节点伸缩节点

切换私网

如果您有切换私网的需求,也可以在控制台实现

该操作会重启集群,请在集群压力较小时操作。

  • 步骤一

基本属性 中选择「切换私有网络」

切换私网

  • 步骤二

选择您要切换的 VPC 网络和私有网络,点击提交即可

切换私网

扩容集群

如果集群的配置不满足现在的需求,可以在控制台实现集群的扩/缩容。

该操作会重启集群,请在集群压力较小时操作。

  • 步骤一

扩容集群扩容集群

  • 步骤二

​操作完上面的步骤,就会出现下面的选项,按照自己的需求选择相应的内存和磁盘大小,确认无误后点击提交即可 ​ ​扩容集群

测试服务

​ 集群创建完成后,您可以使用 redis-cli 来测试服务是否正常运行

在同一私网下创建一台 Linux 主机,下载与集群 redis 版本相同的 redis,这里以 redis 5.0.3 版本为例,编译,进入 src 目录执行下面的命令

  • 查询主节点的角色
$~: ./redis-cli -h 192.168.0.251 info replication
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.0.15,port=6379,state=online,offset=99623,lag=1
slave1:ip=192.168.0.16,port=6379,state=online,offset=99623,lag=1
master_replid:b48a740d36aba2c61fcf7a8d820cbbfdeb3b94eb
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:99623
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:99623

  • 插入一个 key value 对
$~: ./redis-cli -h 192.168.0.251 set a b
OK
  • 获取 key 的 value
$~: ./redis-cli -h 192.168.0.251 get a
"b"

参数修改

​ 可以在此修改环境参数,参数修改完成保存后,集群将重启以应用新的参数配置,所以请在服务压力相对较小的时候修改参数。 ​

如果修改了 port 参数,则需要打开集群网络防火墙中的对应的端口号。如修改 port 参数为 6378 ,此时需要打开防火墙的 6378 端口。 ​ ​ ​

修改参数

监控告警

​ 可以在此为节点配置告警信息,随时监控您的服务

alert

迁移现有数据

​ 如果您目前有 Redis( >= 2.6.0) 数据库数据想迁移到 Redis on QingCloud 上来,可以使用下列的方式来迁移:

  • redis-port 您也可以使用 redis_port 来迁移, 下载程序后,执行 ./redis-sync -m [源地址:端口号] -t [目标地址:端口号] ,如下图,提示完成[100%],即可终止程序。此工具也支持rdb文件导入,比较灵活,详细说明请参见 https://github.com/CodisLabs/redis-port

redis_port

备份恢复

可以对集群进行手动备份,也可以在集群列表页面右键选择备份时间进行自动备份。

备份数据 备份数据

如果需要从备份创建出一个独立于原有数据库服务的新数据库服务,可以在详情页的『备份』标签下右键相应的备份点,再选择『从备份创建集群』即可。

备份数据

升级版本

如果在您集群的基本属性中存在如下图所示的『有新版本可用,关闭集群后升级』,便可升级版本。

升级版本

操作步骤:

  • 步骤一,先关闭集群,点击如图所示的『升级』,就会出现步骤二中的界面 升级版本

  • 步骤二,选择需要升级的版本,点击升级即可

升级版本

其他

为了更好的管理 Redis 服务,我们默认禁用一些 Redis 的命令,禁用的命令列表如下:

  • BGREWRITEAOF
  • BGSAVE
  • DEBUG
  • CONFIG
  • SAVE
  • SHUTDOWN
  • SLAVEOF
  • KEYS

为兼容 Redis 5.0.3 - QingCloud 1.2.1 之前的版本,该版本默认开启了如下命令,升级集群的用户依旧保持开启该命令,我们强烈建议新建集群的用户禁用掉该命令,该命令的误操作,会对数据造成不可恢复的丢失:

  • FLUSHDB
  • FLUSHALL

您可以通过参数配置页打开 CONFIGSAVEKEYS 命令,但我们强烈不推荐您这么做。错误地使用 CONFIG 命令可能会导致服务的不可用,我们建议您在生产环境上使用默认设置来禁用这三个命令。 当您需要打开命令时,在配置参数页取消勾选 DISABLE_ALL 选项,并勾选您需要打开的命令,保存配置,服务会自动重启以生效。

enable_commands

多可用区(同城多活)测试

测试方法

本次测试的集群版本为 Redis standalone v4.0.9 ,下载对应的 redis 版本 解压,并编译安装,使用 src 目录下的 redis-benchmark 对 Redis standalone 集群做测试,命令如下

./redis-benchmark -h <目标节点ip> -n 200000 -c 100 -q

因为 redis 的读写操作均在主节点进行,所以本次的测试的「目标节点ip」为主节点ip

测试环境

集群 CPU 内存 主节点所在区
测试vm 2 4G pek3b
单可用区集群 2 2G pek3b pek3b
多可用区集群 2 2G pek3b/3c/3d pek3d

测试结果

命令 单可用区QPS平均值 多可用区QPS平均值 比值
INCR 42887 31806 1.35
LPUSH (needed to benchmark LRANGE) 43465 31602 1.38
PING_INLINE 43347 32143 1.35
SPOP 43167 32749 1.32
SET 42888 31387 1.37
PING_BULK 42746 32543 1.31
MSET (10 keys) 36024 27601 1.31
GET 43106 32560 1.32
RPOP 43370 31323 1.38
HSET 41941 30592 1.37
LPOP 42403 31475 1.35
RPUSH 43177 31293 1.38
SADD 43476 32611 1.33
LPUSH 43224 31373 1.38
LRANGE_100 (first 100 elements) 27299 24763 1.1
LRANGE_300 (first 300 elements) 13265 12879 1.03
LRANGE_500 (first 450 elements) 10316 10274 1
LRANGE_600 (first 600 elements) 8332 8458 0.99
ping值 0.25 2.85 11.61