检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
使用DCS实现游戏开合服的数据同步 游戏开合服,指大型网络游戏开启新服务器(服务区)或将新老服务器合并。在游戏开合服过程中,会遇到如何将不同服务器数据同步的问题。通过DCS服务Redis的消息队列pub/sub机制,可以将数据变更消息发布到Redis的频道中,其他游戏服务器订阅该频道,接收数据变更消
中”。创建Redis实例的操作请参考购买Redis实例。 已创建弹性云服务器,创建弹性云服务器的方法,请参见购买弹性云服务器。 如果弹性云服务器为Linux系统,该弹性云服务器必须已经安装gcc编译环境。 如果ECS未安装gcc编译环境,请执行以下命令进行安装: yum install
已成功创建Redis实例,且状态为“运行中”。创建Redis实例的操作请参考购买Redis实例。 已创建弹性云服务器,创建弹性云服务器的方法,请参见购买弹性云服务器。 如果弹性云服务器为Linux系统,该弹性云服务器必须已经安装Python编译环境。 连接实例前确保客户端与Redis实例之间网络互通,具体请参考连接Redis网络要求。
操作系统的fsync函数刷新缓冲区数据到磁盘,有些操作系统会真正刷新磁盘上的数据,其他一些操作系统只会尝试尽快完成。 单机实例不支持该参数。 no:不调用fsync,由操作系统决定何时刷新数据到磁盘,性能最高。 always:每次写AOF文件都调用fsync,性能最差,但数据最安全。 every
已成功创建Redis实例,且状态为“运行中”。创建Redis实例的操作请参考购买Redis实例。 已创建弹性云服务器,创建弹性云服务器的方法,请参见购买弹性云服务器。 如果弹性云服务器为Linux系统,该弹性云服务器必须已经安装gcc编译环境。 连接实例前确保客户端与Redis实例之间网络互通,具体请参考连接Redis网络要求。
10000 连接超时时间,单位:毫秒 idleConnectionTimeout 10000 空闲连接的最大回收时间,单位:毫秒 pingConnectionInterval 30000 检测连接可用心跳,单位:毫秒,建议值:3000ms timeout 3000 请求等待响应的超时时间,单位:毫秒
行SET或GET时的性能。 测试步骤 创建Redis缓存实例。 创建3台弹性云服务器(ECS),ECS选择与实例相同可用区、VPC、子网和安全组。 如果是测试单机或主备实例,创建1台ECS即可。 在每台ECS上安装redis-benchmark。可通过以下两种方式安装Redis-
redisHost为Redis实例的连接IP, redisPort为Redis实例连接端口,redisPassword为Redis实例的连接密码,timeout是连接超时/读写超时。 JedisPool jedisPool = new JedisPool(jedisPoolConfig, redisHost, redisPort
格版本,支持x86的CPU架构,用于满足百万级以上并发与大容量数据缓存的需要。Redis集群的数据分布式存储和读取,由DCS内部实现,用户无需投入开发与运维成本。 Redis集群实例由“负载均衡器”、“Proxy服务器”、“集群配置管理器”、“集群分片”共4个部分组成。 表1 Redis
使用DCS实现游戏开合服的数据同步 在游戏开合服过程中,会遇到如何将不同服务器数据同步的问题。通过DCS服务Redis的消息队列pub/sub机制,可以将数据变更消息发布到Redis的频道中,其他游戏服务器订阅该频道,接收数据变更消息,从而实现数据同步。该实践介绍如何使用Redis实现不同服务器数据同步。
弹性负载均衡 > 后端服务器组”。 单击所创建的后端服务器组名称,进入后端服务器组详情页面。 在“后端服务器 > 跨VPC后端”页签下,查看DCS实例IP的健康检查结果。 客户端连接DCS实例 客户端通过ELB连接Cluster集群实例的单个节点。 登录3创建的弹性负载均衡服务器,查看ELB基本信息。
当前分布式加锁主要有三种方式:(磁盘)数据库、缓存数据库、Zookeeper。 使用DCS服务中Redis缓存实例实现分布式加锁,有几大优势: 加锁操作简单,使用SET、GET、DEL等几条简单命令即可实现锁的获取和释放。 性能优越,缓存数据的读写优于磁盘数据库与Zookeeper。 可靠
和相同子网的弹性云服务器(ECS)上。 除了建议ECS、DCS缓存实例处于相同VPC之外,还需要他们的安全组分别配置了正确的规则,客户端才能访问DCS缓存实例。 如果ECS、DCS缓存实例配置相同的安全组,安全组创建后,默认包含组内网络访问不受限制的规则。 如果ECS、DCS缓存
升级带宽单价 * 购买时长 升级带宽单价以调整实例带宽时控制台显示的价格为准。 在连接DCS缓存实例时,客户端如果通过ECS访问DCS实例,关于ECS计费详情,请参见弹性云服务器价格详情。
不满足安全要求,如果暴露在公网上,极易受到恶意攻击,导致数据泄露和丢失。 针对DCS的Redis实例,您在使用过程中,可参考如下建议: 网络连接配置 敏感数据加密后存储在Redis实例,且实例不开启公网访问。 对于敏感数据,尽量加密后存储。如无特殊需要,尽量不使用公网访问。 对安全组设置有限的、必须的允许访问规则。
线程都可承担端口监听(监听建立网络链接的请求)、accept请求(接纳并建立网络链接)、读取数据(从网络链接如socket读写数据)和解析协议(解析并处理Redis命令等),依托于服务器计算能力的提升,整体性能N倍提升。 表1 企业版和基础版的能力对比 对比项 DCS基础版 DCS企业版
可参考Lua脚本。 lua脚本的执行超时时间为5秒钟,建议不要在lua脚本中使用比较耗时的代码,比如长时间的sleep、大的循环等语句。 调用lua脚本时,建议不要使用随机函数去指定key,否则在主备节点上执行结果不一致,从而导致主备节点数据不一致。 Lua脚本调试命令 Prox
写流量大的场景请考虑普通主备或集群 。 从节点故障后,需要一定的时间从主节点全量同步数据,同步数据期间,从节点不对外提供服务,此时实例读请求性能会下降。 推荐使用<32G内存规格的实例,内存规格越小,主从全量同步数据时间越少,同步断链时间越短。 读写分离实例 图1 读写分离实例 实例示意图说明:
进入Web CLI登录界面 输入实例的访问密码进入Web CLI,然后选择当前操作的Redis数据库,在命令输入框输入Redis命令,按Enter键执行。 控制台连接实例空闲超过5分钟会连接超时,再次登录需要重新输入访问密码。 免密访问的Redis实例无需输入密码。 父主题: 连接Redis实例
0主备实例的备节点对用户不可见,不支持客户端直接读写数据。 Redis 4.0、Redis 5.0和Redis 6.0基础版主备实例的备节点对用户可见,用户可以通过只读地址连接到备节点上读取数据。 数据同步 主备节点通过增量数据同步的方式保持缓存数据一致。 当网络发生异常或有节点故障时,主备实