检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
使用DCS实现游戏开合服的数据同步 游戏开合服,指大型网络游戏开启新服务器(服务区)或将新老服务器合并。在游戏开合服过程中,会遇到如何将不同服务器数据同步的问题。通过DCS服务Redis的消息队列pub/sub机制,可以将数据变更消息发布到Redis的频道中,其他游戏服务器订阅该频道,接收数据变更消息,从而实现
Cluster集群Redis,创建Redis的方法,请参见购买Redis实例。 创建的目标Redis内存规格不能小于源Redis。 已创建弹性云服务器ECS,创建弹性云服务器的方法,请参见购买弹性云服务器。ECS请选择与DCS Cluster集群实例相同虚拟私有云、子网和安全组。 获取源Redis和目标Redis节点信息
行SET或GET时的性能。 测试步骤 创建Redis缓存实例。 创建3台弹性云服务器(ECS),ECS选择与实例相同可用区、VPC、子网和安全组。 如果是测试单机或主备实例,创建1台ECS即可。 在每台ECS上安装redis-benchmark。可通过以下两种方式安装Redis-
DCS实例类型 Redis单机实例 Redis主备实例 Redis Proxy集群实例 Redis Cluster集群实例 Redis读写分离实例 Redis实例类型差异 Memcached单机实例(已停售) Memcached主备实例(已停售)
端连接示例,请参考用户指南的连接缓存实例。 LB-M/LB-S 负载均衡服务器,采用主备高可用方式。Redis集群实例提供访问的IP地址和域名,即为负载均衡服务器地址。 Proxy Redis集群代理服务器。用于实现Redis集群内部的高可用,以及承接客户端的高并发请求。 支持使用Proxy节点的IP连接集群实例。
容灾和多活策略 DCS缓存实例都存储着大量关键数据,不论是作为数据库前端缓存,还是作为数据存储引擎,数据的可靠性与服务的连续可用性是DCS服务设计上为客户考虑的核心因素,下图展示了DCS在数据和服务方面的容灾架构设计演进。 图1 DCS容灾架构演进 根据对数据与服务的不同可靠性要
如果源端集群部署在数据中心内网,还需在内网服务器上安装RedisShake,并参考下述步骤进行数据导出,然后将数据文件上传到云服务器。 从源端Redis控制台导出RDB文件,如果无法导出RDB文件,请联系源端技术支持获取。 导入RDB文件。 将导出的RDB文件(含多个)上传到云服务器上。云服务器与目标端DCS
目标Redis有的数据会保留。 已创建弹性云服务器ECS,创建弹性云服务器的方法,请参见创建弹性云服务器。 ECS请选择与DCS Cluster集群实例相同虚拟私有云、子网和安全组,并且需要绑定弹性公网IP。 安装Rump 登录弹性云服务器。 下载Rump的release版本。
请求什么类型的操作。 GET:请求服务器返回指定资源。 PUT:请求服务器更新指定资源。 POST:请求服务器新增资源或执行特殊操作。 DELETE:请求服务器删除指定资源,如删除对象等。 HEAD:请求服务器资源头部。 PATCH:请求服务器更新资源的部分内容。当资源不存在的时
和客户端。 实施步骤 登录MySQL数据库所在服务器。 在MySQL数据库所在服务器安装Redis客户端用来进行数据的提取、传输和转换。安装Redis客户端请参考安装Redis客户端。 分析源端数据结构,在MySQL数据库所在服务器中创建如下的迁移脚本,保存文件名为migrate
据会保留。 已创建弹性云服务器ECS,创建弹性云服务器的方法,请参见创建弹性云服务器。 ECS请选择与DCS Cluster集群实例相同虚拟私有云、子网和安全组,并且需要绑定弹性公网IP。 自建的源Redis Cluster集群如果是在本地或者其他云厂商的服务器上自建,需要允许被公网访问。
通过Nginx访问Redis 登录ECS控制台,确认跳板机的安全组规则是否放开,如果没有,则需要为安全组放开8080和8081两个端口。 单击ECS实例名称,进入ECS详情页面。 选择“安全组”页签,单击“配置规则”,可进入安全组配置页面。 图6 进入ECS安全组 图7 添加安全组入方向规则
典型应用场景 Redis应用场景 很多大型电商网站、视频直播和游戏应用等,存在大规模数据访问,对数据查询效率要求高,且数据结构简单,不涉及太多关联查询。这种场景使用Redis,在速度上对传统磁盘数据库有很大优势,能够有效减少数据库磁盘IO,提高数据查询效率,减轻管理维护工作量,降
高危命令如何重命名? 当前支持重命名的高危命令为command、keys、flushdb、flushall、hgetall、scan、hscan、sscan、和zscan,Proxy集群实例还支持dbsize和dbstats命令重命名,其他命令暂不支持重命名。高危命令重命名的操作方式,请参考命令重命名。
dis与源Redis实例重复的数据迁移后会被覆盖,源Redis没有、目标Redis有的数据会保留。 已创建弹性云服务器ECS,创建弹性云服务器的方法,请参见创建弹性云服务器。 自建的源Redis实例必须放通SYNC命令,否则无法使用Redis-cli导出RDB文件。 导出RDB文件
Proxy集群开启多DB的使用限制及操作方式 DCS对于实现多DB存在一定的约束,建议针对客户业务进行评估: 使用约束: swapdb不支持多DB。 info keyspace不支持多DB展示。 需要查询每个DB的key总数,可以使用自定义dbstats命令。命令执行数据节点上会有CPU冲高。
在游戏开合服过程中,会遇到如何将不同服务器数据同步的问题。通过DCS服务Redis的消息队列pub/sub机制,可以将数据变更消息发布到Redis的频道中,其他游戏服务器订阅该频道,接收数据变更消息,从而实现数据同步。该实践介绍如何使用Redis实现不同服务器数据同步。 使用DCS实现电商秒杀功能
格式,如果源数据含有list、set之类数据,请采用第三方迁移工具。 华为云ECS(弹性云服务器) 如果待迁移实例较多,可准备多台ECS并行迁移 弹性IP地址 选择与DCS缓存实例网络互通的弹性云服务器进行数据导入,确保导入过程网络稳定。 带宽建议选取高配,提升数据传输效率。 系统登录用户/密码
访问。 Redis读写分离实例提供的IP地址和域名,即为VPC终端节点服务的地址。 ELB 弹性负载均衡服务器,采用集群高可用方式,支持多可用区部署。 Proxy 代理服务器集群。通过Proxy节点识别用户读写请求,如果是写请求,则转发给主节点,如果是读请求,则转发给备节点,不需要用户在客户端做任何配置。
不同的机器上时,虽然这两个请求可以同时执行,但是因为两个机器运行在两个不同的Java虚拟机中,因此每个机器加的锁不是同一个锁,而不同的锁只对属于自己Java虚拟机中的线程有效,对其他Java虚拟机的线程无效。此时,Java提供的原生锁机制在多机部署场景下就会失效,出现库存超卖的现象。