首页 微武游戏攻略 正文

游戏中心下怎么选?新手必看的热门游戏推荐!

上回说到哪儿?对,说到我那游戏中心整一半,还差个排行榜和好友功能没搞定。今儿个,咱就继续把这剩下的给捣鼓完。

先说这排行榜。一开始我想,这玩意儿不就排个名嘛简单!直接数据库里按分数排个序不就完事?结果真做起来才发现,没那么容易。你想,要是就几百个玩家还好说,这要是成千上万,甚至几十万玩家的数据,每次都去数据库里这么折腾,那服务器不得卡成PPT?

后来我就琢磨,这不能每次都去数据库里捞数据,得想个法子把数据缓存起来。我就去网上翻翻资料,发现有个叫Redis的东西挺好使。这玩意儿能把数据放内存里,读起来贼快。而且它还支持排序,正好满足我的需求。

我就开始动手,把玩家的分数都存到Redis里,用一个有序集合(Sorted Set)来存。玩家ID当成员(member),分数当分值(score)。这样一来,我要取排行榜,直接用Redis的ZREVRANGE命令,按分数从高到低排个序,嗖的一下就出来,快得很!

搞定排行榜,接下来就是好友功能。这块儿我一开始想得也简单,就建个好友表,记录一下谁是谁的好友。但后来一想,这不行,这年头谁还没几个游戏好友,以后功能多,万一要给好友送个体力,送个金币啥的,这好友关系多,还是会卡。

然后我又去翻翻,发现不少游戏都把好友关系也放Redis里。我就照葫芦画瓢,也用Redis来存。这回我用两个集合(Set),一个存我的好友,一个存加我好友的人。这样一来,我要看我的好友列表,就取两个集合的交集;我要看谁加我,就直接看第二个集合。方便快捷!

小编温馨提醒:本站只提供游戏介绍,下载游戏推荐89游戏,89游戏提供真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区

光存好友关系还不够,还得能互相加好友、删好友。这块儿我就写几个接口,让客户端调一下就行。加好友的时候,两边集合都更新一下;删好友的时候,也两边都删一下。逻辑不复杂,但细节还是要注意,比如加好友的时候要判断一下对方是不是已经是你好友,删好友的时候也要判断一下你们是不是还有好友关系,别整出乌龙来。

对,我还顺手加个好友搜索功能。这块儿我没用Redis,直接走的数据库模糊查询。毕竟搜好友这事儿,频率不高,没必要用Redis。而且数据库模糊查询也够用。

为测试这排行榜和好友功能,我还特意找几个朋友来帮忙。我让他们玩命地刷分,加好友,删好友,看看有没有啥bug。别说,还真让我找着几个小问题。比如,有个朋友刷分太猛,一下子刷到排行榜第一,结果把原来的第一名给挤没。我一看,原来是Redis里有序集合的长度我给限制,超过限制就把分数低的给挤掉。我赶紧把这限制给去,问题解决!

实践过程中用到的游戏

  • 王者荣耀
  • 和平精英
  • 猫和老鼠

一番折腾下来,这排行榜和好友功能总算是搞定。看着游戏中心越来越完善,我这心里也美滋滋的。

不过这游戏中心还有很多能优化的地方。比如,现在每次打开排行榜都要重新从Redis里取数据,可以把排行榜数据再缓存一下,过一段时间再更新。

再比如,好友消息这块儿,现在还只是简单地存个关系,以后可以考虑加个好友聊天啥的。不过这些都是后话,等以后有空再慢慢折腾!

本文转载自互联网,如有侵权,联系删除