检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
至会导致主备切换。 易造成缓存击穿。 热Key的请求压力过大,超出Redis的承受能力易造成缓存击穿,即大量请求将被直接指向后端的数据库,导致数据库访问量激增甚至宕机,从而影响其他业务。 父主题: 大Key/热Key分析/过期Key扫描
使用DCS实现视频直播弹幕和社交网站评论的功能 使用DCS实现游戏开合服的数据同步 使用DCS实现电商秒杀功能 使用DCS改造传统应用系统数据库 升级Redis 3.0实例到高版本实例
使用DCS实现电商秒杀功能 本章节介绍在电商秒杀场景中,利用DCS Redis作为数据库的缓存,客户端通过访问Redis进行库存查询和下单操作,以满足电商秒杀系统高并发的需求。 使用DCS改造传统应用系统数据库 本章节以将MySQL数据库中的一张表迁移到华为云DCS Redis中为例,介绍数据迁移的过程。
订单处理:后端服务器会将订单信息保存到数据库中,并进行异步处理,例如发送消息通知用户订单状态。 缓存更新:后端服务器会更新缓存中的商品库存信息,以便处理下一次秒杀请求。 秒杀过程中多次访问数据库,下单通常是利用行级锁进行访问限制,抢到锁才能查询数据库和下单。但是秒杀时的大量订单请求,会导致数据库访问阻塞。 解决方案
至会导致主备切换。 易造成缓存击穿。 热Key的请求压力过大,超出Redis的承受能力易造成缓存击穿,即大量请求将被直接指向后端的数据库,导致数据库访问量激增甚至宕机,从而影响其他业务。 对于如何避免产生大Key和热Key,需要在业务设计阶段就考虑。参考Redis使用规范。 如何发现大Key和热Key
RDB文件,确保业务数据均已同步到RDB文件中。 测试数据可以在导入后删除。 如果有某个数据库没有被业务系统使用,可以将测试数据写入该数据库,待导入DCS后,使用flushdb命令清空该数据库。 单机实例如果不做持久化配置,则RDB文件需要临时生成,导出耗时较主备实例相比稍多一些。
受的最大超时时间,设定一个经验值。 取值范围:1~86,400 默认值:2880 单位:分 迭代扫描key数量 SCAN命令用于迭代当前数据库中的key集合。 COUNT选项的作用就是让用户告知迭代命令, 在每次迭代中应该从数据集里返回多少元素。具体参见scan命令介绍。迭代式扫
将大Key单独转移到其余存储介质。 无法拆分的大Key建议使用此方法,将不适用Redis能力的数据存至其它存储介质,如SFS或者其余NoSQL数据库,并在Redis中删除该大Key。 注意: 禁止使用DEL直接删除大Key,可能会造成Redis阻塞,甚至主备倒换。Redis 4.0及以
F文件整库导入。 AOF文件为所有数据更改命令的全量集合,数据文件稍大。 - Rump 支持在线迁移,支持在同一个实例的不同数据库之间,以及不同实例的数据库之间迁移。 不支持增量迁移。 建议停业务后迁移,避免出现Key丢失。详情参考使用Rump在线迁移其他云厂商Redis。 Redis-shake
连接Redis”,进入Web CLI登录界面,如下图所示。 图1 进入Web CLI登录界面 输入实例的访问密码进入Web CLI,然后选择当前操作的Redis数据库,在命令输入框输入Redis命令,按Enter键执行。 控制台连接实例空闲超过5分钟会连接超时,再次登录需要重新输入访问密码。 免密访问的Redis实例无需输入密码。
连接数上限:表示允许客户端同时连接的个数,即连接并发数。具体实例的连接数,可查看监控指标“活跃的客户端数量”。 QPS:即Query Per Second,表示数据库每秒执行的命令数。QPS的测试方法,可参考性能测试方法。 Memcached实例支持“单机”和“主备”两种类型。 单机实例 因系统开销占用
当前分布式加锁主要有三种方式:(磁盘)数据库、缓存数据库、Zookeeper。 使用DCS服务中Redis缓存实例实现分布式加锁,有几大优势: 加锁操作简单,使用SET、GET、DEL等几条简单命令即可实现锁的获取和释放。 性能优越,缓存数据的读写优于磁盘数据库与Zookeeper。 可靠
<password> :连接服务器的密码,免密连接的实例无需输入-a {password} -r <repeat> :执行指定命令N次 -n <db> :数据库编号,默认是0 -c :启用集群模式(遵循-ASK和-MOVED重定向) --latency :进入特殊模式连续采样延迟 --scan :非阻塞式的扫描键空间(区别于keys
连接数上限:表示允许客户端同时连接的个数,即连接并发数。具体实例的连接数,可查看监控指标“活跃的客户端数量”。 QPS:即Query Per Second,表示数据库每秒执行的命令数。QPS的测试方法,可参考性能测试方法。 Redis 3.0实例支持“单机”、“主备”和“Proxy集群”三种类型。 DCS
Memcached已停售,建议使用Redis实例。 Memcached是一种内存Key-Value缓存系统,它支持简单字符串数据的存取,通常作为后端数据库内容缓存,以提升web的应用性能,降低对后端数据库的性能依赖,具体了解请参考Memcached(已停售)典型应用场景。 DCS全面兼容Memcached协议并增强实现了双机热备和数据持久化。
String Redis名称。 proxy_multi_db Boolean proxy实例是否开启了多DB。 db String Redis数据库。 表6 TargetInstanceBody 参数 参数类型 描述 id String Redis实例ID(target_instance信息中必须填写)。
String Redis名称。 proxy_multi_db Boolean proxy实例是否开启了多DB。 db String Redis数据库。 表6 TargetInstanceBody 参数 参数类型 描述 id String Redis实例ID(target_instance信息中必须填写)。
CLI。 控制台连接实例空闲超过5分钟会连接超时,再次登录需要重新输入访问密码。 免密访问的Redis实例无需输入密码。 单机实例支持多个数据库(DB),请选择其中一个DB进行数据存储。此处选择“Database 0”。 图2 选择Database 在命令输入框输入Redis命令,
****为创建Redis实例时自定义的密码,请按实际情况修改后执行。 界面显示一行新的命令行,说明连接Redis实例成功。可以输入命令对数据库进行读写操作。 图3 连接redis成功 连接Cluster集群实例。 安装redis-py-cluster客户端。 执行以下命令下载released版本。
Redis名称。 proxy_multi_db 否 Boolean proxy实例是否开启了多DB。 db 否 String Redis数据库。 表6 TargetInstanceBody 参数 是否必选 参数类型 描述 id 是 String Redis实例ID(target_instance信息中必须填写)。