云服务器内容精选
-
操作场景 当前GeminiDB Redis支持将其他云厂商Redis、自建Redis的数据通过GeminiDB控制台导入到GeminiDB Redis。 您需要先将其他云厂商Redis、自建Redis的数据备份下载到本地,然后将备份数据文件上传与GeminiDB Redis实例同一租户下相同Region下的OBS桶中,最后在GeminiDB控制台创建数据导入任务,将数据导入到GeminiDB Redis实例中。
-
创建OBS桶并上传备份文件 如果上传的备份文件大于5GB,请按照OBS服务提供的超过5GB如何上传操作指导执行。 如果上传的备份文件较小,且小于5GB,请执行如下步骤: 创建OBS桶。 在创建过程中,以下两个参数请按要求设置,其他详细的创建步骤,请参考《对象存储服务用户指南》的“创建桶”章节。 选择“区域”。 OBS桶所在区域必须跟Redis目标实例所在区域相同。 设置“存储类别”,当前支持“标准存储”、“低频访问存储”和“归档存储”。 请不要选择“归档存储”,否则会导致备份文件数据导入失败。 设置完成后,单击“立即创建”,等待OBS桶创建完成。 在OBS管理控制台的桶列表中,单击1中创建的OBS桶名称,进入“概览”页面。 在左侧导航栏,单击“对象”。 在“对象”页签下,单击“上传对象”,系统弹出“上传对象”对话框。 指定对象的存储类别。 请不要选择“归档存储”,否则会导致备份文件数据导入失败。 上传对象。 您可以拖拽本地文件或文件夹至“上传对象”区域框内添加待上传的文件,也可以通过单击“上传对象”区域框内的“添加文件”,选择本地文件添加。 单次最多支持100个文件同时上传,总大小不超过5GB。 图1 批量上传对象 可选:勾选“KMS加密”,用于加密上传文件。 单击“上传”,完成备份文件上传到OBS桶。
-
入门实践 当您购买并连接了GeminiDB Redis数据库实例后,可以根据自身的业务需求使用GeminiDB Redis提供的一系列常用实践。 表1 常用最佳实践 实践 描述 数据迁移 阿里云数据库Redis/Tair到GeminiDB Redis的迁移 本实践主要介绍阿里云数据库Redis/Tair到GeminiDB Redis的迁移方案。使用阿里云的数据迁移工具DTS中的数据迁移功能,该功能支持将阿里云Redis服务的数据迁移至其他Redis服务中,利用该工具避开阿里云 Redis服务屏蔽sync和psync命令限制,实现数据从阿里云Redis服务迁移至华为云GeminiDB Redis中。 腾讯云Redis到GeminiDB Redis的迁移 本实践主要介绍腾讯云Redis到GeminiDB Redis的迁移方案。使用腾讯云的数据迁移工具DTS中的数据同步功能,该功能支持将腾讯云 Redis服务的数据迁移至ECS自建Redis中,利用该工具避开腾讯云 Redis服务屏蔽分片实际IP,实现数据从腾讯云 Redis服务迁移至华为云GeminiDB Redis中。 自建Redis到GeminiDB Redis的迁移 本实践主要介绍自建Redis到GeminiDB Redis的迁移方案。使用Redis-Shake迁移工具进行源端Redis到目标端GeminiDB Redis的迁移。迁移过程支持全量+增量迁移,支持单机/主从/Cluster集群/RDB文件等多种Redis数据源。 RDB文件恢复到GeminiDB Redis(推荐) 本实践主要介绍RDB到GeminiDB Redis的迁移方案。使用Redis-Shake迁移工具进行源端RDB到目标端GeminiDB Redis的迁移。迁移过程支持全量+增量迁移。 Kvrocks到GeminiDB Redis的迁移 本实践主要介绍Kvrocks到GeminiDB Redis的迁移方案。使用开源工具kvrocks2redis进行Kvrocks到GeminiDB Redis的迁移,在此基础上,从GeminiDB Redis源码层面对Kvrocks的namespace功能进行适配。 Pika到GeminiDB Redis的迁移 本实践主要介绍Pika到GeminiDB Redis的迁移方案。pika-port伪装成Pika的从节点运行,通过主从复制的方式进行数据迁移。Pika主节点通过比较pika-port和自己的binlog偏移量判断做全量迁移还是增量迁移。如果需要做全量迁移,Pika主节点会将全量数据快照发送给pika-port,pika-port将解析后的快照数据发送给GeminiDB Redis。全量迁移结束后进入增量迁移,pika-port将增量数据解析后以redis命令的形式发送给GeminiDB Redis。 SSDB到GeminiDB Redis的迁移 本实践主要介绍SSDB到GeminiDB Redis的迁移方案。ssdb-port作为源端SSDB数据库的主节点的从节点(replica)运行,通过主从复制的方式进行数据迁移。将获取到的数据解析、转换为Redis支持的格式,并发送到配置文件中指定的Redis实例。全量同步完成后,SSDB中新增的数据也会同步到Redis实例中。 LevelDB到GeminiDB Redis的迁移 本实践主要介绍LevelDB到GeminiDB Redis的迁移方案。使用自研迁移工具leveldb-port,和LevelDB部署在相同机器上,准备好配置文件,启动迁移即可自动完成全量与增量的迁移。 RocksDB到GeminiDB Redis的迁移 本实践主要介绍RocksDB到GeminiDB Redis的迁移方案。使用自研迁移工具rocksdb-port,和RocksDB部署在相同机器上,准备好配置文件,启动迁移即可自动完成全量与增量的迁移。 AWS ElasticCache for Redis数据库到GeminiDB Redis的迁移 本实践主要介绍AWS ElasticCache for Redis到GeminiDB Redis的迁移方案。AWS ElasticCache for Redis通过备份导出RDB文件后,通过Redis-Shake迁移工具的数据恢复(restore)将数据迁移到GeminiDB Redis。 数据备份 管理自动备份 介绍如何在数据库实例的备份时段中创建数据库实例的自动备份,系统根据您指定的备份保留期保存数据库实例的自动备份。 管理手动备份 介绍如何为数据库实例手动备份数据,用户可以通过手动备份恢复数据,从而保证数据可靠性。 数据恢复 恢复备份到新实例 介绍如何使用已有的自动备份或手动备份恢复实例数据到新建实例,恢复后的数据与该备份生成时的实例数据一致。 日志管理 慢日志 GeminiDB Redis支持查看数据库级别的慢日志,执行时间的单位为ms。通过该日志,可查找出执行效率低的语句,以便优化。 父主题: 快速入门
-
GeminiDB Redis是否支持多DB GeminiDB Redis的多DB功能已于2022年3月底上线,此前创建的实例暂不支持该功能,也不支持通过升级开启该功能。 使用GeminiDB Redis多DB功能时,您需要关注以下约束与限制: DB数支持的范围为0~999。 不支持swapdb命令。 dbsize结果非实时刷新,flushdb后dbsize返回的结果不会立刻降为0,会在一段时间后变为0。 不支持在Lua脚本中使用select和flushdb命令。 不支持在事务中使用select和flushdb命令。 暂不支持move命令。 父主题: 数据库使用
-
使用须知 添加节点会触发快速负载均衡,可能出现请求超时,影响仅为秒级。建议业务侧有自动重试机制。 实例状态为正常、恢复检查中时可以添加节点。 实例进行添加节点时,该实例不可被删除。 如果搭建双活关系,不允许在主实例和备实例同时进行添加节点、删除节点和规格变更操作。 添加节点可能导致当前磁盘容量不足以支撑实例运行,需要先扩容磁盘,再添加节点。不同规格实例支持的存储容量,请参考实例规格说明。 当实例的存储容量不足以支撑添加节点时,您可以先扩容存储容量,再添加节点。 当有节点处于关机状态时,不能添加节点。 添加节点目前只支持集群版实例。
-
运维规范 在日常运维工作中需关注以下运维规范,预防潜在风险并掌握关键应急方案。 表2 GeminiDB Redis运维规范 编号 运维规范 说明 1 确保您的华为云账号绑定的电话号码、电子邮箱等联系方式有效,以便及时收到服务相关通知信息。 华为云服务会在变更、升级、故障通知等必要场景通过网站、邮箱、短信、站内信等方式向您送达通知信息,请确保账号绑定的联系方式有效。 2 订阅重要告警 订阅例如大Key访问、存储容量高、连接数使用率高、CPU使用率高等告警,从而在数据库实例出现风险时提早发现并及时处理。 推荐告警配置请参考设置告警规则。 3 使用负载均衡地址访问时,需要配置访问控制管理,而不是安全组。 负载均衡地址不支持安全组,创建完成后请配置IP访问控制,如未配置白名单,所有与VPC互通的IP地址均可访问实例。具体操作请参考设置负载均衡地址黑白名单。 4 配置实例自动扩容 GeminiDB Redis支持自动扩容,可以有效避免数据量突增问题。建议参见存储空间自动扩容开启自动扩容。 5 保持负载处于健康水位 如业务数据量长期高于80%,建议及时扩容。 如业务流量超过实例QPS基准,或CPU利用率长期高于80%,建议及时升级规格或增加节点,避免过载影响业务访问。 在业务流量、连接数等指标突增导致实例算力资源超载的紧急场景,应通过水平添加节点快速提升集群算力。垂直升配CPU规格为滚动模式,耗时较长,不建议用于紧急场景。 6 重命名高危命令 对于高危命令(如flushall、keys),建议您禁用或重命名,以增强实例的安全性。具体操作请参考文档命令重命名。 7 定期进行大key在线诊断 大Key访问是Redis使用中的常见问题。建议在控制台定期查看实例的大Key诊断报告。具体操作请参考大Key诊断。 9 割接结束后执行dbsize dbsize可以保证最终一致性,例如,在割接场景,无过期key,数据导入完成后的的数分钟执行,可得到准确值,确保数据导入前后的一致。
-
开发规范 在开发业务程序时需重点关注以下开发规范,避免因使用方式不当影响业务稳定。 表1 GeminiDB Redis开发规范 编号 开发规范 说明 1 业务程序需具备合理的自动重连机制。 在规格变更、补丁升级、HA倒换、网络链路抖动或丢包等场景中,业务程序与数据库实例的连接可能出现短暂中断。业务程序应当支持自动重连。 说明: 尽量避免使用Lettuce客户端,因为该客户端在请求多次超时后,不再发起自动重连。建议使用更稳定的Jedis客户端替换Lettuce客户端。 2 业务程序需使用连接池并配置足够连接数。 为避免并发激增时程序获取不到连接,建议业务程序使用连接池,并配置合理的连接池参数。客户端的连接池推荐配置请参考客户端连接池参数配置。 3 针对部分重要操作,业务程序需要具备合理的命令重试机制。 在连接中断或请求超时等场景,业务程序请求可能会短时内执行失败。因此,针对部分重要操作需要设计业务容错机制,使用合理的命令重试间隔和次数,确保重要数据写入或修改成功。 4 使用正确的高可用连接地址,避免单点故障场景影响业务。 业务程序内网连接数据库时,应使用负载均衡地址,实现高可用。应避免将业务程序直连到某个单独的计算节点。 说明: 针对公网访问数据库的场景,同样应避免将业务程序直连到某个单独的计算节点,请参考通过弹性负载均衡绑定弹性公网IP连接实例使用外置ELB进行配置。 5 使用连接池,避免使用单连接以及大量短连接。 由于单连接有高可用风险,而短连接性能差且会消耗大量数据库CPU和网络资源,容易造成瓶颈,因此建议业务程序使用主流SDK的连接池连接GeminiDB Redis实例。 6 当实例中Key数量大于1000个时,禁止执行Keys命令 Keys命令是典型的高危命令,会一次性获取整个实例中的全部数据内容并返回给客户端。当实例中Key数量较多时,执行Keys命令会引起请求阻塞或实例状态异常。 7 避免元素Value过大,避免单Key包含的元素数量过多。 根据最佳实践,建议String类型Key的Value小于10KB,Hash/List/Zset/Set等类型Key中包含元素数小于5000,且单个元素Value小于1KB。 说明: 与社区Redis一样,GeminiDB Redis对大Key存储并不做严格约束,因此需要用户根据规范合理开发业务程序。 8 避免单个命令中一次性操作过多元素或产生过大的网络收发包。 建议MSET/MGET等批量操作Key命令中同时操作的Key数量小于1000。 建议HMSET、HGETALL、LRANGE、ZADD、ZRANGE等同时操作Key中多元素的命令同时操作元素数量小于1000。 由于社区Redis语法中ZREMRANGEBYSCORE命令不提供limit参数,无法控制单次删除的元素数量,建议使用ZRANGEBYSCORE (带limit)+ZREM的先查后删方式替代。 说明: 与社区Redis一样,GeminiDB Redis对大Key访问并不做严格约束,因此需要用户根据规范合理开发业务程序。 9 合理打散Key分布,避免出现热点Key或热点hashtag瓶颈。 对单个Key或具有同hashtag的一组Key的高频访问依赖会产生热Key问题,容易引发计算资源倾斜,请求排队,响应变慢等瓶颈问题。热Key的产生往往来自业务设计对Key的拆分程度不足,需要业务拆分优化。 说明: 反面案例: 对全局超大排行榜高频集中访问。 全实例中仅保存几个Hash Key,每个Key用于存储一整张表格的信息量。 商品库存业务中,全实例Key仅使用少量hashtag分桶,导致热点hashtag查询排队。 10 单次Pipeline中打包命令数量建议小于100条。 使用Pipeline时应遵循“单次少量,分多次”原则。 根据使用经验,并非Pipeline打包数量越大性能越好,不合理的Pipeline用法将可能导致实例CPU、带宽等资源瓶颈,甚至引起请求阻塞。 说明: 与社区Redis相比,GeminiDB Redis对Pipeline的使用并不做严格约束,因此需要用户根据规范合理开发业务程序。 11 避免在Lua脚本中引入高耗时代码。 使用Lua脚本时应遵循轻量化原则,避免引入执行命令次数过多、长时间sleep、大的循环语句等不合理用法。 12 避免在事务中打包过多命令。 使用事务时应遵循轻量化原则,避免单次事务中打包过多命令或复杂度过高的命令。执行的事务中包含命令过多会引起请求阻塞或实例状态异常。 13 避免在不同数据类型下使用相同的Key名称。 社区Redis强制禁止在不同数据类型下使用相同的Key名称。虽然GeminiDB Redis对此不做强制约束,但开发时应当避免此类用法,保持程序清晰和易维护。
-
迁移场景 表1 迁移场景 序号 源端 目标端 迁移方案 1 阿里云Redis/Tair GeminiDB Redis 阿里云数据库Redis/Tair到GeminiDB Redis的迁移 2 腾讯云Redis GeminiDB Redis 腾讯云Redis到GeminiDB Redis的迁移 3 自建Redis/Codis GeminiDB Redis 自建Redis到GeminiDB Redis的迁移 4 RDB GeminiDB Redis RDB文件恢复到GeminiDB Redis(推荐) 5 自建Kvrocks GeminiDB Redis Kvrocks到GeminiDB Redis的迁移 6 自建Pika GeminiDB Redis Pika到GeminiDB Redis的迁移 7 自建SSDB GeminiDB Redis SSDB到GeminiDB Redis的迁移 8 自建LevelDB GeminiDB Redis LevelDB到GeminiDB Redis的迁移 9 自建RocksDB GeminiDB Redis RocksDB到GeminiDB Redis的迁移 10 AWS ElasticCache for Redis GeminiDB Redis AWS ElasticCache for Redis数据库到GeminiDB Redis的迁移
-
迁移工具 DRS服务:华为云数据复制服务DRS(Data Replication Service)提供数据库零停机的迁移上云体验,支持全量数据迁移和增量数据迁移,为您提供安全稳定高可靠的迁移链路,详情请参考迁移方案概览。 Redis-Shake工具:Redis-Shake是一款开源迁移工具,支持全量扫描(rump)、数据恢复(restore)、增量同步(sync)等迁移方式,灵活方便。将工具下载到一台ECS上即可用命令行形式方便迁移。
-
使用须知 删除操作无法恢复,请谨慎操作。 删除节点时,您可以联系客服,选择1s到5min的节点连接时间(节点连接时间适用于所有节点),断开长连接。 如果搭建双活关系,不允许在主实例和备实例同时进行添加节点、删除节点和规格变更操作。 开启操作保护的用户,在进行敏感操作时,通过进行二次认证再次确认您的身份,进一步提高账号安全性,有效保护您安全使用云产品。关于如何开启操作保护,具体请参考《统一身份认证服务用户指南》的内容。 添加节点目前只支持集群版实例。
-
存储容量满设置只读 为保护GeminiDB Redis实例的正常运行,在存储空间即将被写满的时候,数据库会被设置成只读状态,该状态下只支持数据的读取,不支持写入和更新,可以通过扩容存储容量来解除该状态,重新获得写入和更新的能力。 表1 磁盘满只读说明 存储容量 说明 小于600GB 存储容量使用率达到97%时,实例状态被设置为只读。 存储容量使用率下降到85%,实例自动解除只读状态。 大于或等于600GB 存储容量剩余空间小于18GB,实例状态被设置为只读。 存储容量剩余空间大于或等于90GB,实例自动解除只读状态。
-
使用须知 存储容量变更目前既支持扩容,也支持缩容。 GeminiDB Redis存储容量使用率超过95%时,实例会进入只读模式,此时实例只支持读取和删除数据,不支持写入新数据。为了避免影响业务访问,建议当存储容量使用率超过80%时,及时进行存储扩容。 缩容场景下,待变更到的磁盘容量必须大于已用量的125%,向上取整。 容量变更无需重启实例,在此期间,服务不中断,不影响您正常使用数据库。 存储详情支持在“实例管理”页面显示,您可以联系客服进行开通。
-
测试环境 区域:华北-北京四 可用区:可用区1+可用区2+可用区3(跨3个可用区部署) 弹性云服务器(Elastic Cloud Server,简称ECS):规格选择h3.4xlarge.2,16U32GB,操作系统镜像使用CentOS 7.5 64位版本。 被测试实例的配置:每个实例均包含3个节点。 被测试实例的规格:覆盖以下规格类型,详见表1 实例规格。 表1 实例规格 编号 规格 cluster1 4U16GB cluster2 8U32GB cluster3 16U64GB cluster4 32U128GB
-
测试模型 workload模型 表2 测试模型 测试模型编号 测试模型 读多写少场景 workload-read-mostly 95% read, 5% update 读写均衡场景 workload-read-write-combination 50% update, 50% read 读改写均衡场景 workload-read-modify-write 50% read, 50% readmodifywrite 读更新写混合场景 workload-mixed-operational-analytical 65% read, 25% update, 10% insert 写多读少场景 workload-insert-mostly 90% insert, 10% read 数据模型 fieldlength=100, fieldcount=10 预置数据量 本次性能测试中,针对每种规格的实例,测试了如下预置数据量的性能。 预置数据具体如下表所示: 表3 预置数据量 编号 规格 预置数据量 cluster1 4U16GB 50GB cluster2 8U32GB 100GB cluster3 16U64GB 200GB cluster4 32U128GB 400GB
-
测试数据 不同测试模型下,不同规格且预置相当数据量,测试的OPS*数据(表格中黑色字体),详见表1 测试数据中加粗内容。 表1 测试数据 节点规格 4U16GB 8U32GB 16U64GB 32U128GB 客户端并发数 32 64 128 256 预置数据量 50GB 100GB 200GB 400GB 读多写少场景 workload-read-mostly 15627 44612 90713 169037 读写均衡场景 workload-read-write-combination 19565 46240 95065 158793 读改写均衡场景 workload-read-modify-write 11768 29488 59332 96964 读更新写混合场景 workload-mixed-operational-analytical 17534 40214 80661 137616 写多读少场景 workload-insert-mostly 23830 44548 67290 111540 OPS:Operation Per Second,数据库每秒执行的操作数。 测试模型编号:测试模型编号对应的测试模型,请参见表2 测试模型。 父主题: 性能白皮书
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格