云服务器内容精选
-
约束与限制 企业版Redis暂不支持调整带宽。 只有在运行中的实例支持调整带宽,如果是变更中、故障中、重启中等其他状态下的实例不支持调整实例带宽。 实例单分片带宽的调整范围在单分片的基准带宽(默认带宽)到最大可调整的带宽之间。通常在实例节点所在物理机带宽资源充足的前提下,实例可调整的单分片最大带宽为2048 Mbit/s。 目标带宽只支持设置为8的整数倍。如果设置的值不为8的整数倍,订单提交后将自动向下取8的倍数。 调整带宽的计费方式仅支持按需计费,请注意配置费用的变化。
-
如何查看基准带宽和调整后的带宽 在手动调整带宽的页面,可以查看实例每个分片的“基准带宽”和“当前带宽”。对于已经调整过带宽的实例,“当前带宽”即调整后的带宽值。 图4 查看带宽值 实例带宽与单分片带宽的关系如下: 单机/主备实例带宽=单分片带宽。 读写分离实例带宽=单分片带宽 * 副本数。 集群实例带宽=单分片带宽 * 分片数,当各分片带宽值不同时,集群实例带宽值为各个分片带宽值之和。 例如图4中是一个3分片的集群实例,每个分片调整后的带宽为800 Mbit/s,该集群实例总带宽为2400 Mbit/s。
-
调整D CS 实例带宽 登录分布式缓存服务管理控制台。 在管理控制台左上角单击,选择实例所在的区域。 单击左侧菜单栏的“缓存管理”。 在“缓存管理”页面,单击DCS缓存实例的名称。 在缓存实例的“基本信息”栏中单击带宽后的“调整带宽”。 图1 调整带宽 在“调整带宽”页面,设置带宽参数。 实例默认为手动调整带宽的方式,可根据需要设置目标带宽值。如果开启“自动弹性带宽调整”功能白名单,实例带宽调整方式支持选择“手动调整”或“自动弹性带宽调整”(如果控制台不支持选择带宽调整方式,请联系客服开启“自动弹性调整带宽”功能白名单)。 目标带宽值只支持设置为8的整数倍。如果设置的带宽值不是8的整数倍,订单提交后会自动按照向下取整的方式调整带宽。例如输入的带宽值为801,则按照800 Mbit/s的目标带宽调整带宽。 变更页面显示的变更后费用为该实例额外购买的带宽计费金额,不包含原实例费用。 调整带宽的计费方式仅支持按需计费。 您可以根据需要多次调整带宽,单个计费周期(1小时)中如果有多次带宽变更,该计费周期以最大带宽费用收费。例如将一个Redis实例(默认带宽值为256 Mbit/s)的宽带变更为2048 Mbit/s后,在一个计费周期内再次将带宽值变更为512 Mbit/s,实例在该计费周期将按照2048 Mbit/s的带宽值扣费。 手动调整 手动调整实例的目标带宽值。集群实例多个分片需要调整带宽时,可以对多个分片单独设置不同的目标带宽,也可以同时勾选多个分片后,单击页面左上角的“批量调整带宽”,统一设置带宽值。 图2 手动设置新带宽值 手动调整目标带宽后,确认新的带宽值及带宽费用后,在“带宽调整确认”处勾选确认,再单击“提交订单”。 调整带宽任务的状态为“成功”后,新的带宽值立即生效。 自动弹性带宽调整 开启“自动带宽扩展”并根据需要设定自动带宽扩容策略,如表1。 系统会根据您设定的自动带宽扩容策略自动执行带宽扩展,如果触发带宽扩展,单分片最高可扩展至2048Mbit/s。如果您已对实例带宽进行过手动调整,自动弹性带宽调整结果会覆盖已手动调整的结果。 图3 设置自动带宽扩容策略 表1 设定自动带宽扩容策略 带宽扩容策略 说明 瞬时带宽使用率不小于 触发带宽自动扩容的瞬时带宽使用率阈值,单位:%。 瞬时带宽使用率=瞬时使用带宽/分片带宽。该公式中的“瞬时使用带宽”取监控指标“网络瞬时输出流量”和“网络瞬时输入流量”中较大的值。 当实例单分片的瞬时带宽使用率达到设置的阈值时,会触发该分片带宽自动扩容,分片带宽扩容后,瞬时带宽使用率会降低到(设置的瞬时带宽使用率阈值-10%)。 例如将该阈值设置为70%,则当分片的瞬时带宽使用率达到70%时,会触发该分片带宽自动扩容,扩容后的瞬时带宽使用率会降低到60%。因此,扩容后的分片带宽=瞬时使用带宽/60%。 观测窗口 带宽弹性的观测窗口,单位:分钟。默认值:1。 例如观测窗口时间设置为1分钟时,则带宽监控数据取值为1分钟内的监控数据。 静默时间 扩容操作的静默时间,单位:秒。默认值:0。 当带宽自动扩容后,如果再次监测到瞬时带宽使用率超过阈值,实例在设置的静默时间内不会立即扩容,设置静默时间可以避免实例连续进行带宽自动扩容。 设置自动带宽扩展参数后,在“带宽调整确认”处勾选确认,再单击“确定”。
-
约束限制 该功能目前为白名单功能,如需查看并升级实例的小版本/代理版本,请先联系客服开通白名单。 仅Redis 4.0及以上基础版实例支持查看或升级实例的小版本/代理版本,企业版实例不支持。 仅Proxy集群和读写分离实例涉及代理版本,其他实例类型不涉及。 建议在业务低峰期执行实例小版本升级。业务高峰期(如实例内存利用率、CPU利用率达到90%以上或写入流量过大)升级可能会失败,若升级失败,请在业务低峰期再次尝试升级。 实例升级小版本采用节点迁移的方式,在数据迁移过程中,访问时延会增大,每迁移一个分片会发生一次秒级闪断和一分钟以内的只读,请确保客户端应用具备重连机制和处理异常的能力。 实例升级小版本时,Cluster集群请确保客户端能正常处理MOVED和ASK命令,否则会导致请求失败。 实例升级代理版本过程中会发生秒级连接闪断,请确保客户端应用具备重连机制和处理异常的能力,建议在业务低峰期升级。 如果实例已经为最新小版本/代理版本,不支持升级。
-
升级DCS实例小版本/代理版本 登录分布式缓存服务管理控制台。 在管理控制台左上角单击,选择实例所在的区域。 单击左侧菜单栏的“缓存管理”。 在“缓存管理”页面,单击DCS缓存实例的名称,进入实例详情页面。 在“基本信息”区域,可以查看或选择升级实例的小版本和代理版本(仅Proxy集群和读写分离实例涉及代理版本)。 图1 升级实例小版本/代理版本 升级小版本 单击“小版本”后的“升级小版本”。 如果需要同步升级实例的代理版本,在弹出的升级小版本窗口中开启“是否同步升级代理版本”。 单击“确定”,提交实例升级任务。待升级版本任务的状态显示“成功”后,升级版本完成。 升级代理版本 单击“代理版本”后的“升级代理版本”。 如果需要同步升级实例的小版本,在弹出的升级小版本窗口中开启“是否同步升级小版本”。 单击“确定”,提交实例升级任务。待升级版本任务的状态显示“成功”后,升级版本完成。
-
RESP3协议 在Redis 6.0中,推出了下⼀代Redis协议-RESP3,相比于RESP2协议,增加了⼀部分新的数据类型。 Null:空值,替代RESP2中的*-1、$-1 Array:有序集合 Simple string:节省空间的安全字符串(非⼆进制) Blob string:⼆进制格式的安全字符串 Simple error:节省空间的安全错误码/错误信息(非⼆进制) Blob Error:⼆进制格式的安全错误码/错误信息 Boolean:True/False,布尔类型 Number:有符号的64位整数 Big Number:⼤数字类型 Double:浮点数 Verbatim string:⼆进制格式的安全字符串,带文本格式 Map:无序的键值对 Set:⽆序的不重复元素集合 Attribute:属性键值对,类似于Map PUSH:带外数据,类似于Array,⽤于Redis服务端主动向客户端推送数据 Hello:hello命令返回的响应类型,⽤于客户端、服务端建立连接时使⽤
-
客户端缓存 Redis 6.0中通过TRACKING模块实现了主动通知客户端刷新缓存的机制,根据协议类型,实现⽅式如下: RESP3 普通模式 ⼴播模式 RESP2 转发模式 开启客户端缓存通知的格式如下: CLIENT TRACKING ON|OFF [REDIRECT client-id] [PREFIX prefix] [BCAST] [OPTIN][OPTOUT] [NOLOOP] 在RESP3协议中,主要是借助了PUSH类型的消息来实现服务端的主动推送通知。在普通模式中,Redis会记住每个客户端请求的key,当该key所对应的value发⽣变化时,将会发送失效消息(invalidation message)通知对应的客户端集合,但对于每个客户端仅会通知⼀次,即使后续该key所对应的value有其他操作改动,除非客户端在接收到失效消息后,再次通过读取该key的⽅式开启通知。开启普通模式的track功能命令如下 : CLIENT TRACKING ON 对于⼴播模式,则根据所track的key prefix来决定在符合key prefix的key所对应的value有所变化时,通知给所有的客户端,如key prefix所匹配的key数量较多,或改动较多,将会导致服务端发送⼤量的失效⼴播消息,消耗⽹络带宽。开启⼴播模式的track功能命令如下: CLIENT TRACKING ON BCAST PREFIX key-prefix 如客户端SDK不⽀持RESP3协议,只能采⽤RESP2协议的转发模式来实现客户端缓存主动更新通知,需要准备⼀个专⻔⽀持RESP3协议的客户端来作为中转节点,转发来⾃Redis的失效消息(invalidation message)⾄特定的订阅频道。⼯作原理如下: 图1 工作原理
-
支持SSL Redis 6.0开始⽀持SSL/TLS⽅式的加密连接及加密传输,可通过在服务控制台上开启SSL服务,⽣成实例的SSL/TLS证书及密钥,在使⽤客户端连接时,指定该证书/密钥即可,连接⽰例如下: redis-cli --tls --cert /etc/redis/ssl/redis.crt --key /etc/redis/ssl/redis.key --cacert /etc/redis/ssl/redis.crt 详情请参见:SSL设置。
-
导出备份文件 执行命令进入解压后的RedisShake文件目录。 cd redis-shake-v2.0.3 编辑RedisShake工具配置文件redis-shake.conf,补充源端所有master节点的连接信息。 vim redis-shake.conf 修改内容如下: source.type = cluster #如果无密码,本项不填 source.password_raw = {source_redis_password} #源Cluster集群所有master节点的IP地址与端口,以分号分隔 source.address = {master1_ip}:{master1_port};{master2_ip}:{master2_port}…{masterN_ip}:{masterN_port} 修改后按下Esc键退出编辑模式,输入:wq!按回车键保存配置并退出编辑界面。 执行以下命令导出源Redis集群的RDB格式备份文件。 ./redis-shake -type dump -conf redis-shake.conf 执行日志中出现如下信息时导出备份文件完成: execute runner[*run.CmdDump] finished!
-
安装RedisShake 登录弹性 云服务器ECS 。 在ECS中执行以下命令下载RedisShake。本文以下载2.1.2版本为例,您可以根据实际需要下载其他RedisShake版本。 wget https://github.com/tair-opensource/RedisShake/releases/download/release-v2.1.2-20220329/release-v2.1.2-20220329.tar.gz 执行命令解压RedisShake文件。 tar -xvf redis-shake-v2.1.2.tar.gz 如果源Cluster部署在数据中心内网,则需在内网服务器上安装RedisShake,并参考导出备份文件导出源Cluster备份文件,然后将备份文件上传到云服务器。
-
导入备份文件 将导出的RDB备份文件(含多个)上传到与云服务器上。云服务器与目标端DCS Cluster集群实例的网络连通。 编辑RedisShake工具配置文件redis-shake.conf。补充目标端所有master节点的连接信息。 vim redis-shake.conf 修改内容如下: target.type = cluster #如果无密码,本项不填 target.password_raw = {target_redis_password} #目标Cluster集群所有master节点的IP地址与端口,以分号分隔 target.address = {master1_ip}:{master1_port};{master2_ip}:{master2_port}…{masterN_ip}:{masterN_port} #需要导入的rdb文件列表,用分号分隔 rdb.input = {local_dump.0};{local_dump.1};{local_dump.2};{local_dump.3} 修改后按下Esc键退出编辑模式,输入:wq!按回车键保存配置并退出编辑界面。 使用如下命令导入RDB备份文件到目标Cluster集群: ./redis-shake -type restore -conf redis-shake.conf 执行日志中出现如下信息时导入备份文件完成: Enabled http stats, set status (incr), and wait forever.
-
获取源Redis和目标Redis节点信息 分别连接源端和目标端Redis。连接Redis的方法请参考Redis-cli客户端连接Redis。 在线迁移Cluster集群时需要将Cluster集群各个节点数据分别迁移。执行如下命令分别查询源端和目标Cluster集群的所有节点的IP地址与端口: redis-cli -h {redis_address} -p {redis_port} -a {redis_password} cluster nodes {redis_address}为Redis的连接地址,{redis_port}为Redis的端口,{redis_password}为Redis的连接密码。 在命令返回的结果中,获取所有master节点的IP端口,如下如所示:
-
前提条件 如果您还没有目标Redis,请先创建目标Redis,具体操作请参考购买Redis实例。 如果您已有目标Redis,则不需要重复创建,为了对比迁移前后数据及预留足够的内存空间,建议在数据迁移之前清空目标实例数据,清空操作请参考清空Redis实例数据。如果没有清空实例数据,数据迁移后,目标Redis与源Redis实例重复的数据迁移后会被覆盖,源Redis没有、目标Redis有的数据会保留。 已创建弹性云服务器ECS,创建弹性云服务器的方法,请参见创建弹性云服务器。 ECS请选择与DCS Cluster集群实例相同虚拟私有云、子网和安全组,并且需要绑定弹性公网IP。 自建的源Redis Cluster集群如果是在本地或者其他云厂商的服务器上自建,需要允许被公网访问。
-
在线迁移数据 使用如下命令同步源Redis集群和目标Redis集群数据: ./redis-shake -type sync -conf redis-shake.conf 执行日志中出现如下信息,代表全量数据同步完成,进入增量同步阶段: sync rdb done. 执行日志出现如下信息时,代表增量同步无新增内容,可手动停止同步(Ctrl + C): sync: +forwardCommands=0 +filterCommands=0 +writeBytes=0 图1 RedisShake在线迁移示意图
-
配置RedisShake工具 登录弹性云服务器ECS。 在ECS中执行以下命令下载RedisShake。本文以下载2.1.2版本为例,您可以根据实际需要下载其他RedisShake版本。 wget https://github.com/tair-opensource/RedisShake/releases/download/release-v2.1.2-20220329/release-v2.1.2-20220329.tar.gz 执行命令解压RedisShake文件。 tar -xvf redis-shake-v2.1.2.tar.gz 执行命令进入解压后的RedisShake文件目录。 cd redis-shake-v2.0.3 编辑RedisShake工具配置文件redis-shake.conf,补充源端与目标端所有master节点信息。 vim redis-shake.conf 修改内容如下: source.type = cluster #如果无密码,本项不填 source.password_raw = {source_redis_password} #源Cluster集群所有master节点的IP地址与端口,以分号分隔 source.address = {master1_ip}:{master1_port};{master2_ip}:{master2_port}…{masterN_ip}:{masterN_port} target.type = cluster #如果无密码,本项不填 target.password_raw = {target_redis_password} #目标Cluster集群所有master节点的IP地址与端口,以分号分隔 target.address = {master1_ip}:{master1_port};{master2_ip}:{master2_port}…{masterN_ip}:{masterN_port} 修改后按下Esc键退出编辑模式,输入:wq!按回车键保存配置并退出编辑界面。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格