检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
该方案需要提前了解业务的热点Key有哪些,设计客户端/本地和远端Redis的两级缓存架构,热点数据优先从本地缓存获取,写入时同时更新,这样能够分担热点数据的大部分读压力。缺点是需要修改客户端架构和代码,改造成本较高。 设计熔断/降级机制。 热Key极易造成缓存击穿,高峰期请求都直接透传到后端数据库上,从而导致
用以提升数据读取效率,减轻后端并发压力。当缓存中查询不到数据,可穿透至磁盘数据库中获取,同时,重启服务、缓存实例时,可从磁盘数据库中获取数据进行预热,降低后端服务在启动初期的压力。 实例架构设计 DCS的Memcached单机实例架构,如图1所示。 图1 Memcached单机实例示意图
访问。对于设置了过期时间的Key,当达到过期时间时,Redis不会立即对Key进行删除,由于Redis当前主线程仍然为单线程,故Redis设计了几种机制对已经过期的Key进行内存释放: 惰性删除:Redis的删除策略由主循环中的判断逻辑进行控制,所有Key读写命令执行之前都会调用
用以提升数据读取效率,减轻后端并发压力。当缓存中查询不到数据,可穿透至磁盘数据库中获取,同时,重启服务/缓存实例时,可从磁盘数据库中获取数据进行预热,降低后端服务在启动初期的压力。 实例架构设计 DCS的Redis单机实例架构,如图1所示。 Redis 3.0和Redis 6.
源Redis在数据库编号0和2中有数据,生成的AOF或RDB文件包含了这两个库。 在导入到Proxy集群实例时会忽略“select 2”的命令,然后继续导入源数据库2中的数据到DB0中。 用户需要注意以下: 源Redis中不同数据库包含了相同的key,则导入时,编号靠前的数据库的key
安全、故障恢复等方面的问题。 DCS基于开源Redis、Memcached向用户提供一定程度定制化的缓存服务,因此,除了拥有开源服务缓存数据库的优秀特性,DCS提供更多实用功能。 与开源Redis差异 表1 DCS与自建开源Redis的差异说明 比较项 开源Redis DCS Redis
使用DCS实现排行榜功能 方案概述 在网页和APP中经常需要用到榜单的功能,对某个key-value的列表进行降序显示。当操作和查询并发大的时候,使用传统数据库就会遇到性能瓶颈,造成较大的时延。 使用分布式缓存服务(DCS)的Redis版本,可以实现一个商品热销排行榜的功能。它的优势在于: 数据保存在内存中,读写速度非常快。
Redis实例内存使用率高问题排查和解决 问题现象 Redis可提供高效的数据库服务,当内存不足时,可能导致Key频繁被逐出、响应时间上升、QPS(每秒访问次数)不稳定等问题,进而影响业务运行。由于Redis自身运行机制(主从同步、延迟释放等),内存占用率可能出现略微超过100%
strings 支持的特性。 tenant_vpc_id String 租户VPC ID。 tenant_subnet_id String 租户子网ID。 tenant_security_group_id String 租户安全组ID。 bandwidth_limit_mb String
strings 支持的特性。 tenant_vpc_id String 租户VPC ID。 tenant_subnet_id String 租户子网ID。 tenant_security_group_id String 租户安全组ID。 bandwidth_limit_mb String
查询运行中实例的统计信息 功能介绍 查询当前租户下处于“运行中”状态的缓存实例的统计信息。 URI GET /v1.0/{project_id}/instances/statistic 参数说明见表1。 表1 参数说明 参数 类型 必选 说明 project_id String 是
应用场景 视频、直播弹幕展示和社交网站评论回复等场景,要求时效性高,互动性强,类似这样的业务对平台的系统时延有着非常高的要求。如果使用关系型数据库,会涉及到按评论时间逆排序,随着评论越来越多,排序效率越来越低,且并发频繁。 解决方案 使用分布式缓存服务(DCS)的Redis缓存,可以
节点,恢复业务。 Redis的访问端口默认为6379。 Redis 4.0/5.0/6.0基础版主备实例架构设计 Redis 4.0/5.0/6.0基础版主备实例的架构设计,如下图所示。 图2 Redis 4.0/5.0/6.0基础版主备实例示意图 图说明如下: Redis 4.0/5
查询所有实例列表 功能介绍 查询租户的缓存实例列表,支持按照条件查询。 URI GET /v1.0/{project_id}/instances?start={start}&limit={limit}&name={name}&status={status}&id={id}&inc
DCS的主备和集群实例支持部署高可用实例,租户可选择在单可用区或多可用区中部署实例。当租户选择跨AZ实例时,DCS实例会主动建立和维护Redis同步复制。在实例主节点故障的情况下,缓存实例会自动将备实例升为主节点,从而达到高可用的目的。如果租户使用缓存实例时,业务中读取数据比例大,可以选择4
客户端无法使用域名连接DCS缓存实例时如何处理? DCS缓存实例支持域名访问后,若客户端无法使用域名连接DCS缓存实例,需要将租户子网的DNS服务地址配置为内网域名服务器地址。 具体配置方法请参考修改VPC子网的DNS服务器地址。 父主题: 客户端和网络连接
、通知和客户端配置。详细介绍可参考Redis官网。 Sentinel原理 Redis Sentinel是一个分布式系统,Sentinel的设计基础在于多个Sentinel进程协同工作,这样做的好处有: 只有当多个哨兵一致同意某主节点不可用,才执行故障检测,这能够降低误报的可能性。
实例数量 各实例配置的数据库数量 各数据库的key数量 业务用到的数据库 各实例数据占用空间 Redis版本 Redis实例类型 业务与各实例的连接关系 连接待迁移Redis后,执行info keyspace命令可以查看数据分布情况,确认有数据的数据库编号以及数据库中的key数量。记
登录需要重新输入访问密码。 免密访问的Redis实例无需输入密码。 单机实例支持多个数据库(DB),请选择其中一个DB进行数据存储。此处选择“Database 0”。 图2 选择Database 在命令输入框输入Redis命令,例如,通过SET命令写入一个名称为“KEY_NAME
project_id String 是 项目ID。 allFailure String 否 是否批量删除创建失败的缓存实例。 取值如下: true,表示删除租户所有创建失败的缓存实例,此时请求参数instances可为空; false或者其他值,表示删除instances参数数组中指定的缓存实例。