检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
当前分布式加锁主要有三种方式:(磁盘)数据库、缓存数据库、Zookeeper。 使用DCS服务中Redis缓存实例实现分布式加锁,有几大优势: 加锁操作简单,使用SET、GET、DEL等几条简单命令即可实现锁的获取和释放。 性能优越,缓存数据的读写优于磁盘数据库与Zookeeper。 可靠性强,DCS有主备和集群实例类型,避免单点故障。
使用DCS实现排行榜功能 方案概述 在网页和APP中经常需要用到榜单的功能,对某个key-value的列表进行降序显示。当操作和查询并发大的时候,使用传统数据库就会遇到性能瓶颈,造成较大的时延。 使用分布式缓存服务(DCS)的Redis版本,可以实现一个商品热销排行榜的功能。它的优势在于:
算和查询。 在以上三种应用场景中,“跨服资源共享”的实现方式可以参考使用DCS实现热点资源顺序访问,“跨服排行榜”的实现方式可以参考使用DCS实现排行榜功能。 本篇文档主要介绍如何通过Redis的消息队列pub/sub机制,实现“跨服数据同步”。 在使用Redis进行游戏合服方面
使用DCS实现电商秒杀功能 方案概述 应用场景 电商秒杀是一种网上竞拍活动,通常商家会在平台释放少量稀缺商品,吸引大量客户,平台会收到平时数十倍甚至上百倍的下单请求,但是只有少数客户可以下单成功。电商秒杀系统的分流过程可以分为以下几个步骤: 用户请求进入系统:当用户发起秒杀请求时,请求会首先进入负载均衡服务器。
使用DCS实现视频直播弹幕和社交网站评论的功能 方案概述 应用场景 视频、直播弹幕展示和社交网站评论回复等场景,要求时效性高,互动性强,类似这样的业务对平台的系统时延有着非常高的要求。如果使用关系型数据库,会涉及到按评论时间逆排序,随着评论越来越多,排序效率越来越低,且并发频繁。
使用Nginx实现公网访问DCS 方案概述 当前,华为云DCS的Redis 4.0及以上版本不支持绑定弹性IP,无法直接通过公网访问。 本章节主要介绍通过跳板机访问VPC内Redis 4.0/5.0/6.0单机、主备、读写分离、Proxy集群实例的操作,Cluster集群实例暂不支持使用该方案进行公网访问。
合理选择规格 如果业务增长会带来Redis请求增长,请选择集群实例(Proxy集群和Cluster集群)。 单机和主备扩容只能实现内存、带宽的扩容,无法实现计算性能扩容。 生产实例需要选择主备或者集群实例,不能选用单机实例。 - 主备实例,不建议使用过大的规格。 Redis在执行R
方法1:进行业务结构和业务实现分析,找到可能的热Key。 例如,某商品在秒杀,或者用户登录,对业务代码分析,很容易找到热Key。 优点:简单易行。 缺点:需要对业务代码比较了解,另外对于一些复杂的业务场景,不太容易分析。 方法2:在客户端代码中,调用Redis的函数中,进行访问Key的记录,进而统计出热Key。
惰性删除:Redis的删除策略由主循环中的判断逻辑进行控制,所有Key读写命令执行之前都会调用函数对其进行检查,如果过期,则删除该键,然后返回Key不存在的结果;未过期则不做操作,继续执行原有的命令。 定期删除:由Redis的定时任务函数实现,该函数以一定的频率运行,每次运行时,都从键空间中取出一定数量的随机Key进行检查,并删除其中的过期键。
使用SSH隧道代理实现公网访问DCS 方案概述 当前,华为云DCS的Redis 4.0及以上版本不支持绑定弹性IP,无法直接通过公网访问。 本章节主要介绍通过SSH工具的隧道代理机制,通过一台既能连接DCS缓存实例,又能被本地电脑访问的中转服务器,实现“代理转发”,从而访问VPC内Redis
ver进程。一个Redis集群由若干条带组成,每个条带负责若干个slot(槽),数据分布式存储在slot中。Redis集群通过条带化分区,实现超大容量存储以及并发连接数提升。 每个集群实例由多个分片组成,每个分片默认为一个双副本的主备实例。分片数等于实例中主节点的个数。 什么是副本
Redis集群实例如何内存不变,只扩分片数? Proxy集群和Cluster集群实例创建后,支持变更单分片容量,从而实现内存不变,只增加分片数。 例如,单分片容量2GB,分片数为4,内存为8GB的实例,可以变更为单分片容量1GB,分片数为8,内存为8GB的实例。 约束与限制 当已
DCS的Memcached兼容的版本号是多少? DCS的Memcached是基于Redis 3.0版本引擎实现的,兼容memcache1.5.1版本。 父主题: Memcached使用
Lettuce客户端没有连接保活探测,错误连接存在连接池中会造成请求超时报错。 Lettuce客户端未实现testOnBorrow等连接池检测方法,无法在使用连接之前进行连接校验。 Jedis: Jedis客户端实现了testOnBorrow、testWhileIdle、testOnReturn等连接池校验配置。
具体请以控制台显示为准。 Redis 4.0/5.0/6.0基础版本支持读写分离实例,其他版本暂不支持。 读写分离实例,默认为从服务端侧实现的读写分离,通过Proxy节点识别用户读写请求,如果是写请求,则转发给主节点,如果是读请求,则转发给备节点,不需要用户在客户端做任何配置。
惰性删除:Redis的删除策略由主循环中的判断逻辑进行控制,所有Key读写命令执行之前都会调用函数对其进行检查,如果过期,则删除该键,然后返回Key不存在的结果;未过期则不做操作,继续执行原有的命令。 定期删除:由Redis的定时任务函数实现,该函数以一定的频率运行,每次运行时,都从键空间中随机取出一定数量的K
多语言连接 05 实践 您可以根据业务需要,将Redis应用到具体业务中,提升业务效率。 应用 Redis典型应用场景 使用Redis实现分布式锁 实现Redis实现排行榜功能 Redis使用规范 06 API 您可以使用API对分布式缓存服务进行相关操作,如创建、删除、扩容。 API文档
功能。 这是由于私有定制Redis通信协议(RESP协议)的标准无法统一等原因无法实现跨云/Region的Redis侧双活,因此,如果需要双活,可以通过应用侧进行双写改造实现。 图9 应用侧双写实现多活 说明: 双写方案无法保证缓存的一致性(网络出现问题),需要应用侧可以容忍对应
配置Redis ACL访问账号 如需为Redis缓存实例创建多个账号,可以通过DCS的账号管理(ACL)功能,创建只读或读写账号,实现不同用户对缓存实例的只读或读写访问控制。 约束与限制 目前仅Redis 4.0和Redis 5.0版本的Redis实例,默认支持账号管理功能。Redis
变更DCS集群实例为多可用区 为满足单可用区(主、备节点在相同可用区)集群实例实现跨可用区容灾部署的需求,DCS支持将单可用区集群实例通过迁移备节点可用区的方式,变更为多可用区(主、备节点在不同可用区)的集群实例。 约束与限制 仅副本数≥2的单可用区集群实例支持该功能,其他场景均不支持变更实例可用区。