检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
使用DCS改造传统应用系统数据库 方案概述 应用场景 随着互联网等数据库应用行业的逐渐发展,业务需求急速增加,数据量和并发访问量呈指数级增长,仅依附于传统关系型数据库难以支撑上层业务。传统数据库存在结构复杂、维护成本高、访问性能差、功能有限、无法轻松适应数据模型或模式的变化等问题。
高危命令如何重命名? 当前支持重命名的高危命令为command、keys、flushdb、flushall、hgetall、scan、hscan、sscan、和zscan,Proxy集群实例还支持dbsize和dbstats命令重命名,其他命令暂不支持重命名。高危命令重命名的操作方式,请参考命令重命名。
ats命令重命名,其他命令暂时不支持。 约束与限制 仅Redis 4.0及以上版本的实例,支持命令重命名功能。 重命名的过程中会自动重启实例,请谨慎操作。 重命名操作完成后立即生效。因为涉及安全性,页面不会显示重命名后的命令。 同一个命令支持多次重命名,每次新的重命名操作都会覆盖
缓存访问失败时,具备降级措施,从DB获取数据;或者具备容灾措施,自动切换到另一个Redis使用。 - 数据设计规范 分类 原则 原则说明 备注 Key相关规范 使用统一的命名规范。 一般使用业务名(或数据库名)为前缀,用冒号分隔。Key的名称保证语义清晰。 例如,业务名:子业务名:id 控制Key名称的长度。
容灾和多活策略 DCS缓存实例都存储着大量关键数据,不论是作为数据库前端缓存,还是作为数据存储引擎,数据的可靠性与服务的连续可用性是DCS服务设计上为客户考虑的核心因素,下图展示了DCS在数据和服务方面的容灾架构设计演进。 图1 DCS容灾架构演进 根据对数据与服务的不同可靠性要
址/地址段”。 表1 创建白名单参数说明 参数名称 参数说明 示例 分组名 实例的白名单分组名称。每个实例支持创建4组白名单。 分组名的命名规范: 需以字母开头。 长度范围在4到64位之间。 只能包含字母、数字、中划线、下划线。 DCS-test IP地址/地址段 添加允许访问实
址/地址段”。 表1 创建白名单参数说明 参数名称 参数说明 示例 分组名 实例的白名单分组名称。每个实例支持创建4组白名单。 分组名的命名规范: 需以字母开头。 长度范围在4到64位之间。 只能包含字母、数字、中划线、下划线。 DCS-test IP地址/地址段 添加允许访问实
SYNC - 支持重命名的命令 表11 支持重命名的命令 支持重命名的命令 command、keys、flushdb、flushall、hgetall、scan、hscan、sscan、和zscan Proxy集群实例还支持dbsize和dbstats命令重命名,其他命令暂时不支持。
Redis实例支持多DB方式的情况如下: Redis单机、读写分离和主备缓存实例支持多数据库(多DB),默认256个,DB编号为0-255。默认使用的是DB0。多数据库主要用于数据隔离,每个数据库的大小不是平均分配,可能会出现一个数据库将实例的内存完全占用的情况。 Redis Proxy集群默认只有一个DB。
如果目的实例为Cluster集群实例。Cluster集群实例只有1个库。 两个解决思路: 源Redis的不同DB合到同一个数据库。 申请多个DCS缓存实例。 迁移后实例连接地址和数据库编号有变化,业务注意改造和适配。 如果目的实例为Proxy集群。 Proxy集群默认不开启多DB,仅有一个DB
是否支持Memcached和Redis之间实例数据的迁移? 不支持,Memcached和Redis属于不同的缓存数据库,不支持互相迁移数据。 父主题: 数据备份/导出/迁移
使用前必读 欢迎使用分布式缓存服务(Distributed Cache Service)。分布式缓存服务是一款内存数据库服务,兼容了Redis和Memcached两种内存数据库引擎,为您提供即开即用、安全可靠、弹性扩容、便捷管理的在线分布式缓存能力,满足用户高并发及数据快速访问的业务诉求。
Redis实例内存使用率高问题排查和解决 问题现象 Redis可提供高效的数据库服务,当内存不足时,可能导致Key频繁被逐出、响应时间上升、QPS(每秒访问次数)不稳定等问题,进而影响业务运行。由于Redis自身运行机制(主从同步、延迟释放等),内存占用率可能出现略微超过100%
对应参数maxclients,实例创建后支持在控制台“实例详情 > 参数配置”中修改。 QPS:即Query Per Second,表示数据库每秒执行的命令数。QPS的测试方法,可参考性能测试方法。 带宽:即实例的内网带宽,您可以查看监控指标“流控次数”,确认带宽是否超过限额。其
所有Key? Redis命令执行失败的可能原因 在Web Cli执行keys命令报错“permission denied” 高危命令如何重命名? 是否支持pipeline命令? Redis是否支持INCR/EXPIRE等命令? Redis命令执行不生效 Redis命令执行是否有超时时间?超时了会出现什么结果?
为了减少大Key和热Key过大,有什么使用建议? string类型控制在10KB以内,hash、list、set、zset元素尽量不超过5000个。 Key的命名前缀为业务缩写,禁止包含特殊字符(比如空格、换行、单双引号以及其他转义字符)。 Redis事务功能较弱,不建议过多使用。 短连接性能差,推荐使用带有连接池的客户端。
数据备份/导出/迁移 DCS实例是否兼容低版本Redis迁移到高版本 不同类型的操作系统间进行数据传递和操作,需要注意什么? 源Redis使用了多DB,能否迁移数据到集群实例? 源Redis迁移到集群实例中有哪些限制和注意事项? 在线迁移需要注意哪些? 在线迁移能否做到完全不中断业务?
DCS的Redis实例中执行一遍。 保持以上状态运行一段时间后(等待较多的旧数据过期删除),把系统的缓存数据库正式切到华为云DCS。如涉及业务系统迁移云服务,需要在缓存数据库切换前完成业务系统的部署。 不推荐使用这种方式。原因如下: 网络无法保证稳定快速,如果源Redis实例不在
据结构简单,不涉及太多关联查询。这种场景使用Redis,在速度上对传统磁盘数据库有很大优势,能够有效减少数据库磁盘IO,提高数据查询效率,减轻管理维护工作量,降低数据库存储成本。Redis对传统磁盘数据库是一个重要的补充,成为了互联网应用,尤其是支持高并发访问的互联网应用必不可少的基础服务之一。
热Key的请求压力过大,超出Redis的承受能力易造成缓存击穿,即大量请求将被直接指向后端的数据库,导致数据库访问量激增甚至宕机,从而影响其他业务。 对于如何避免产生大Key和热Key,需要在业务设计阶段就考虑。参考Redis使用规范。 如何发现大Key和热Key 方法 说明 使用DCS自带的大Key和热Key分析工具进行分析