dot Redis 8 发布了——并且是开源的

了解更多

改变 Redis 使用方式的三大案例

两周前,Redis 团队参加了 2014 年游戏开发者大会。顾名思义,这次会议聚集了众多游戏开发者,我就如何使用 Redis 构建可扩展的游戏进行了深入探讨。以下是 Redis 在多人游戏行业中的三大用例。

第一名:排行榜

如果说 Redis 有一项功能是游戏开发者们绝对认可的,那就是它的有序集合。几乎所有在线多人游戏都至少有一个玩家排名列表,而且大多数游戏同时管理多个这样的排行榜。例如,在线 FPS 可以按杀敌数对玩家进行排名,并保留一个全局排行榜,以及区域和锦标赛排行榜。这些列表会不断收到更新,并经常进行分页以显示其内容。

Redis 实际上非常适合这项任务 - 要更新排行榜,只需 ZADD 玩家的标识符。想要获得玩家的排名?ZRANK 就行!获取排名前 n 位的玩家或分页浏览排行榜只是一个简单的 ZRANGE 问题。

第二名:会话管理

会话管理是任何在线应用程序的关键,游戏在这方面也不例外。如果说有什么区别,那就是实时游戏对会话管理的要求比一般的购物或社交网站更严格。虽然购物车和社交流更新可能需要几秒钟才能完成,但游戏的成功通常取决于其响应速度和玩家当前状态(例如,生命值、增益等)的准确性。

在 Redis 中管理会话是一种非常流行的做法,高效的哈希数据结构使得管理(即 HINCRBY)玩家的计数器变得非常容易。

第三名:玩家资料

另一个被频繁访问的信息是玩家的资料。根据游戏的不同,资料由与玩家相关的任意数量的零碎信息组成。虽然资料的更新频率较低(至少与玩家排名和会话数据相比),但玩家本人和他的同伴/对手仍然经常访问它。同样,Redis 哈希使这变得轻而易举。

完美的组合

我是多语言持久化的忠实粉丝,我当然在这次展会上得到了满足。我与之交谈的许多游戏开发者都表示使用 Redis 来增强另一种数据存储的能力 - MySQL、Cassandra 和 MongoDB 是常用的技术。来自开发者的一句话真的引起了我的兴趣:“所有的数值都进入 Redis,其余的进入 Cassandra”。

想分享你的故事吗?有任何问题或反馈?发送电子邮件发推文给我,我随时待命。