检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
务器对资源的访问互斥,避免资源冲突。 跨服排行榜 游戏合服后,可以将多个游戏服务器的排行榜进行合并,以展示全服的排名情况。可以使用Redis的有序集合机制,来存储排行榜数据,并进行排名计算和查询。 在以上三种应用场景中,“跨服资源共享”的实现方式可以参考使用DCS实现热点资源顺序
使用DCS实现视频直播弹幕和社交网站评论的功能 方案概述 应用场景 视频、直播弹幕展示和社交网站评论回复等场景,要求时效性高,互动性强,类似这样的业务对平台的系统时延有着非常高的要求。如果使用关系型数据库,会涉及到按评论时间逆排序,随着评论越来越多,排序效率越来越低,且并发频繁。
所有。华为云对Redis的任何使用仅作参考用,并不代表任何赞助、背书或Redis与华为云之间存在任何关联。 技术专题 技术、观点、课程专题呈现 解读Redis技术 华为云产品架构师解读新一代缓存Redis技术的原理和应用 GO语言深入之道 介绍几个Go语言及相关开源框架的插件机制 跟唐老师学习云网络
不建议在生产环境中使用公网访问的方式,对于因公网网络性能造成的客户端访问异常不计入SLA。 购买一台ECS 确认Redis实例所在的虚拟私有云。 如下图所示,已购买了一个虚拟私有云在“vpc-demo”内的主备实例。 图2 Redis缓存实例信息 购买一台同在“vpc-demo”的ECS,并为其绑定一个弹性公网IP,按需选择带宽。
使用SSH隧道代理实现公网访问DCS 方案概述 当前,华为云DCS的Redis 4.0及以上版本不支持绑定弹性IP,无法直接通过公网访问。 本章节主要介绍通过SSH工具的隧道代理机制,通过一台既能连接DCS缓存实例,又能被本地电脑访问的中转服务器,实现“代理转发”,从而访问VPC内Redis
存缺货,同时提供流畅的用户体验,压力巨大。 可以利用Memcached的incr/decr功能, 在内存中存储商品的库存量, 秒杀的抢单过程主要在内存中完成,速度非常快,抢单成功即得一个订单号,这时再去支付页面完成订单的后续操作。 不适用Memcached的应用场景: 单个缓存对象大于1M
数据保护技术 DCS通过多种数据保护手段和特性,保障DCS的数据安全可靠。 表1 DCS的数据保护手段和特性 数据保护手段 简要说明 详细介绍 容灾和多活 根据对数据与服务的不同可靠性要求,您可以选择将缓存实例部署在单可用区内(单机房),或者跨可用区(同城灾备)。 容灾多活策略 副本冗余
Key过大的时候会触发Redis内核对于单Key的迁移限制,造成数据迁移超时失败,Key越大失败的概率越高,大于512MB的Key可能会触发该问题。 造成数据迁移失败。 数据迁移过程中,如果一个大Key的元素过多,则会阻塞后续Key的迁移,后续Key的数据会放到迁移机的内存Buf
提升缓存的整体读写性能。 Proxy集群:在Cluster集群的基础上,增加挂载Proxy节点和ELB节点,通过ELB节点实现负载均衡,将不同请求分发到Proxy节点,实现客户端高并发请求。每个Cluster集群分片默认是一个双副本的主备实例,当主节点故障后,同一分片中的备节点会升级为主节点来继续提供服务。
图解华为云Redis与开源服务的差异
推荐使用<32G内存规格的实例,内存规格越小,主从全量同步数据时间越少,同步断链时间越短。 读写分离实例 图1 读写分离实例 实例示意图说明: VPC终端节点服务 VPC终端节点服务,主要是将Redis缓存实例配置为VPC终端节点支持的服务,用户可以直接通过VPC终端节点服务的地址访问。 R
积压,在实例进行大Key分析过程中,会遍历Redis实例中的所有Key,使实例中的过期Key被识别到过期,因而被删除。 过期Key的删除机制,以及如何手动执行过期Key或设置自动过期Key扫描的操作,请参考过期Key扫描。 父主题: 大Key/热Key分析/过期Key扫描
0基础版版本主备实例,在控制台的实例详情信息页面,域名区分可读写域名和只读域名,分别对应主节点和备节点,在客户端增加用户读写请求判断,如果是写请求,则将请求发送给读写域名,如果是读请求,则将请求发送给只读域名。 读写分离实例,默认为从服务端侧实现的读写分离,通过Proxy节点识别用户读写请求,如
登录分布式缓存服务管理控制台。 在管理控制台左上角单击,选择实例所在的区域。 单击左侧菜单栏的“缓存管理”,进入实例信息页面。 在需要查看的DCS缓存实例左侧,单击该实例的名称,进入该实例的基本信息页面。 选择“实例配置 > 标签”,进入标签页面,界面显示该实例的标签列表。 您可以根据实际需要,执行以下操作:
内(即不同的物理机房)。不同可用区的电力、网络相互隔离,当主节点所在的机房因为电力或者网络出现故障,备节点将接管服务,客户端与备节点正常建立连接以及读写数据。 图4 主备实例跨可用区示意图 图5 读写分离实例跨可用区示意图 图6 Proxy集群实例跨可用区示意图 图7 Cluster集群实例跨可用区示意图
使用DCS实现排行榜功能 方案概述 在网页和APP中经常需要用到榜单的功能,对某个key-value的列表进行降序显示。当操作和查询并发大的时候,使用传统数据库就会遇到性能瓶颈,造成较大的时延。 使用分布式缓存服务(DCS)的Redis版本,可以实现一个商品热销排行榜的功能。它的优势在于:
库存超卖的现象。 解决方案 基于上述场景,需要保证两台机器加的锁是同一个锁,用加锁的方式对某种资源进行顺序访问控制。这就需要分布式锁登场了。 分布式锁的思路是:在整个系统提供一个全局的、唯一的分配锁的“东西”,当每个系统需要加锁时,都向其获取一把锁,使不同的系统获取到的内容可以认为是同一把锁。
Redis 3.0 Proxy集群不支持redisson分布式锁的原因 redisson分布式锁的加锁和解锁流程如下: redisson分布式锁的加锁和解锁都是执行一段lua脚本功能实现的。 在加锁阶段,需要在lua脚本中执行exists、hset、pexpire、hexists
应信息的变化,需要客户端进行拓扑关系的自动更新,否则可能造成请求路由失败或者路由位置错误等,造成客户端访问报错。 例如,3分片Cluster集群实例扩容为6分片Cluster集群实例时,节点拓扑关系和Slot对应信息变化如下图所示: 图2 Cluster集群实例扩容前 图3 Cluster集群实例扩容后
由于大括号“{}”为Redis的hash tag语义,如果使用的是集群实例,Key名称需要正确地使用大括号避免分片不均的情况。 Value相关规范 设计合理的Value大小。 设计合理的Key中Value的大小,推荐小于10 KB。 过大的Value会引发分片不均、热点Key