Redis作为最流行的Key-value数据库,近年来在游戏行业有着广泛的应用。阿里云云数据库Redis于2015年正式商业化,提供了全套的容灾切换、故障迁移、在线扩容、性能优化的数据库解决方案,同时也对游戏行业推出了许多便捷的功能。
下面我就来解读云数据库Redis版针对游戏行业的特性
1.数据持久化,保证数据高可靠性
传统的数据库架构往往是采用关系型数据库存储数据(如:MySQL),在MySQL前端利用缓存来存储访问量极高的数据(如:Redis),整体提升系统性能。
然而有时游戏公司为了快速抢占市场,需要快速的开发出新产品已吸引玩家,往往推出一款游戏策划->开发->上线的周期非常短,对于开发同学来说数据库引擎的选择希望可以尽量减少,减轻开发的复杂度和工作量。
阿里云云数据库Redis默认提供了双击热备及数据持久化功能,当机器故障后,数据不会造成丢失。并且云数据库Redis提供了备份恢复的机制,用户可以定期设置备份策略,提供了极高的数据可靠性。基于云数据库Redis的数据可靠的特性,游戏行业用户可以选择云数据库Redis作为最终数据存储层。
2.应对滚动开服,一键克隆实例
很多业务是游戏房间模式,房间属性的数据全部在数据库层存储好,火爆的游戏往往一天会多次开服,甚至一小时内就需要开服多次。如果创建数据库后,再启动数据库初始脚本去装载数据,就大大降低了工作效率及开服的业务要求时间。
云数据库Redis版基于游戏行业的这一特性,定制开发了一键克隆实例的功能,用户可依据于已存在的备份文件直接创建出新的包年包月或者按量付费的云数据库Redis实例,操作极其简便。(控制台路径:备份列表->选择备份集->克隆实例)
3.应对业务高峰,一键升级配置
由于业务高峰的突袭,或者运营活动等,需要可以做到配置的随时升级来从容应对业务高峰。
云数据库Redis版支持配置的一键升级弹性扩容,按需升级,资源利用率高,升级过程对用户透明,对业务无影响。
4. 极高性能,应对访问压力
由于游戏迭代速度较快,游戏上线初期往往在业务拆分上不会过多考虑。开发者会将所有模块的缓存数据都存储到一个Redis里面。由于Redis内核单线程的特性,单个实例的QPS往往很难突破10万。而在游戏的高速发展期,随着客户数的激增及游戏热度的提升,Redis的性能就会出现瓶颈,性能需求往往会要求至几十万乃至上百万的QPS。
云数据库Redis提供集群版实例,轻松突破Redis自身单线程瓶颈。 集群版提供实例的分片及读取算法,整体过程对用户透明,免去用户开发及运维Redis集群的烦恼。云数据库Redis集群版本支持绝大多数Redis命令,可极大满足对于Redis大容量或高性能的业务需求
同时游戏行业也有数据量较小,性能要求较高的Redis性能要求,云数据库Redis版也在近期推出了更多的集群版配置,来满足不同的客户要求,具体配置如下:
5. 突发连接较大,连接数、带宽可单独调整
有些游戏特性会存在大批玩家在集中时间段涌入,进入后访问压力就会逐层分流到多个业务模块。所以在业务系统的最前端的Redis就承担了极大的业务压力,针对Redis的连接数及内网带宽的要求极高。
云数据库Redis针对这一特性,普遍上调了规格对应的连接数及带宽。将主从版的连接数普遍上调至10000,集群版的连接数普调至80000以上,带宽调整至384MB之上。另外针对主从版本也增加了更多的规格实现连接数和带宽的单独售卖来满足客户多样的用户需求,具体配置如下:
6.针对游戏行业的未来功能展望
1)针对滚动开服,一键克隆实例
Redis会支持基于7天内任意时间点开通新实例的功能,使用户业务开服,数据恢复起到更加有针对性的作用
2)应对业务高峰,一键升级配置
云数据库Redis计划开放主从版实例一键扩容至集群版实例的功能,用户可以从容应对业务高峰。