检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
读写分离 Redis 4.0、Redis 5.0和Redis 6.0基础版主备实例支持客户端读写分离,分别提供可读写的连接地址(主节点)和只读地址(备节点),客户端连接时,可分别选择主节点或备节点。 主备实例实现客户端读写分离,需要在客户端做配置。
文本协议 Memcached文本协议通过ASCII文本传递命令,便于用户编写客户端和调测问题,甚至可以直接使用Telnet连接Memcached实例。 Memcached文本协议与二进制协议相比,兼容更多的开源类型客户端,但文本协议不支持认证操作。
Lettuce客户端连接Cluster集群实例,如果未开启拓扑刷新,规格变更后,需要重启客户端。
客户端协议 使用传统Redis客户端即可。 使用传统Redis客户端即可,不需要支持Redis Cluster协议。 需要客户端支持Redis Cluster协议。 命令限制 不支持的Redis命令,请参考开源命令兼容性。
由于服务端以及部分客户端存在缓存区限制,建议单次Pipeline不要使用过多的命令。
客户端配置来源:Sentinel充当客户端服务发现的权威来源。客户端连接到Sentinel,请求当前负责特定业务的Redis主节点地址。如果发生故障切换,Sentinels将下发新地址。 DCS如何使用Sentinel Sentinel对用户不可见,仅在服务内部中使用。
租户配置IP白名单或安全组的入方向、出方向规则限制,可以控制连接实例的网络范围,避免DCS暴露给不可信第三方。 Redis 4.0、Redis 5.0和Redis 6.0基础版通过白名单控制,请参考配置白名单。
使用Rump在线迁移其他云厂商Redis 部分云厂商的Redis实例禁止客户端发起SLAVEOF、BGSAVE、PSYNC等命令,无法使用Redis-cli、或RedisShake等工具快速导出数据。使用KEYS命令容易造成服务端阻塞。
活跃的客户端数量 0~10000 告警阈值:>8000 连续触发次数:2 告警级别:重要 否 建议结合业务代码对连接池等进行优化,避免连接数超过最大限制。 新建连接数 >=0 告警阈值:>10000 连续触发次数:2 告警级别:次要 - 排查是否使用短连接,或者客户端异常连接。
客户端连接DCS实例 客户端通过ELB连接Cluster集群实例的单个节点。 登录3创建的弹性负载均衡服务器,查看ELB基本信息。 参考购买弹性云服务器购买ECS,登录弹性云服务器,参考Redis-cli连接中相应步骤安装Redis客户端。
最大连接数:表示允许客户端同时连接的个数,即连接并发数。具体实例的连接数,可查看监控指标“活跃的客户端数量”。 QPS:即Query Per Second,表示数据库每秒执行的命令数。QPS的测试方法,可参考性能测试方法。
根据报错后的提示,将客户端参数PingConnectionInterval调大试试。 父主题: Redis使用
在连接DCS缓存实例时,客户端如果通过ECS访问DCS实例,关于ECS计费详情,请参见弹性云服务器价格详情。
连接数上限:表示允许客户端同时连接的个数,即连接并发数。具体实例的连接数,可查看监控指标“活跃的客户端数量”。 QPS:即Query Per Second,表示数据库每秒执行的命令数。QPS的测试方法,可参考性能测试方法。
需要使用Redis-cli客户端连接实例,执行flushdb或者flushall命令进行清空。 flushall:清空整个实例的数据。 flushdb:清空当前DB中的数据。
使用客户端缓存/本地缓存。 该方案需要提前了解业务的热点Key有哪些,设计客户端/本地和远端Redis的两级缓存架构,热点数据优先从本地缓存获取,写入时同时更新,这样能够分担热点数据的大部分读压力。缺点是需要修改客户端架构和代码,改造成本较高。 设计熔断/降级机制。
请求示例 修改实例配置参数,例如将timeout参数(客户端与服务空闲超时断开的时间)设置为1000秒。
客户端需要与集群实例处于相同VPC,并且实例白名单允许客户端的IP地址访问。 客户应用程序 客户应用程序,即Redis集群客户端。 Redis可直接使用开源客户端进行连接,关于多语言客户端连接示例,请参考使用客户端连接Redis。
这个值不是越大越好,一方面连接太多会占用客户端和服务端资源,另一方面对于Redis这种高QPS的服务器,如果出现大命令的阻塞,即使设置再大的资源池也无济于事。
客户端连接Redis Cluster集群实例与连接单机、主备、Proxy集群实例的方式不同,具体请参见使用客户端连接Redis。