zoukankan      html  css  js  c++  java
  • 全民来打飞机~~(设计探讨)

    话说我辉姐姐给我安排过一个面试题:

    设计一个打飞机游戏,玩家可是实时查看朋友的排名,自己的分数情况,如何设计。

    当初一开始的时候,我的思维还是停留在如何设计数据库表,如何构建一个朋友圈,确实这些也很重要。

    但是其实辉爷想听的还更多的如何对排名分数进行存储,如何优化。

    其实方案也很明显,在数据库和展示前面加一个redis做缓存,关键是这个缓存该怎么做?

    开始我的想法是不就是加个缓存,用户得分都扔进redis,然后设置一个定时写入数据库保证数据一致性和效率。

    我以为我这个问题回答完了

    现在在看redis官网,我突然发现如下内容:

    使用有序集合你可以:

    • 在大型在线游戏中创建一个排行榜,每次有新的成绩提交,使用ZADD命令加入到有序集合中。可以使用ZRANGE命令轻松获得成绩名列前茅的玩家,你也可以使用ZRANK根据一个用户名获得该用户的分数排名。把ZRANK 和 ZRANGE结合使用你可以获得与某个指定用户分数接近的其他用户。这些操作都很高效。

    使用redis把排名这个问题能处理的很好了。

    (后面整理整理把这个设计写的明白点,看来多看看书还是挺有收获的)

  • 相关阅读:
    Linux GCC常用命令
    用两个栈实现一个队列(转载)
    BMP格式介绍(一)
    图像处理笔记(1): bmp文件结构处理与显示
    大数据竞赛平台——Kaggle 入门篇
    图像识别中的深度学习
    面向对象中的抽象和具体类的理解
    全排列算法
    少有程序员读的书
    照片回执
  • 原文地址:https://www.cnblogs.com/hexie/p/5018713.html
Copyright © 2011-2022 走看看