V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shiroikuma
V2EX  ›  程序员

像那种手游活动分数的实时排名一般是怎么实现的

  •  
  •   shiroikuma · 2022-03-18 20:03:44 +08:00 via Android · 2025 次点击
    这是一个创建于 967 天前的主题,其中的信息可能已经有所发展或是发生改变。

    怎么保证数据不出错,能抗住多少人同时查询自己的名次呢?有点好奇

    9 条回复    2022-03-21 09:56:01 +08:00
    awalkingman
        1
    awalkingman  
       2022-03-18 20:05:41 +08:00
    redis Zset 了解一下。
    shiroikuma
        2
    shiroikuma  
    OP
       2022-03-18 20:06:28 +08:00 via Android
    @newskillsget 不会丢数据吗
    kongkongyzt
        3
    kongkongyzt  
       2022-03-18 20:14:00 +08:00
    @shiroikuma 还好吧, 这么不相信 redis 么?
    guyeu
        4
    guyeu  
       2022-03-18 20:29:20 +08:00
    Redis 开 AOF 就不会丢数据,但其实实际上手游那点数据量随便哪个 SQL/NoSQL 都没啥压力。
    pengtdyd
        5
    pengtdyd  
       2022-03-18 20:46:41 +08:00
    实时计算
    Nillouise
        6
    Nillouise  
       2022-03-18 20:50:19 +08:00
    有好几篇文章是介绍这个的,总的来说是一个被完善解决了的问题,也就合并更新+一颗红黑树的问题。并发查询不是特别麻烦,毕竟你总是可以开多个备份服务器读取,大量的写入才是这个问题的重点。
    bruce0
        7
    bruce0  
       2022-03-18 21:02:09 +08:00
    简单就用 redis 的 zset 复杂的话 就自己写个跳表 其实就直接 redis 就行了, 开着 aof 性能也差不到哪里
    joesonw
        8
    joesonw  
       2022-03-18 23:46:14 +08:00 via iPhone
    就算逻辑服没用 redis ,排行榜肯定是 redis 。只是最好粒度拆的细一点,避免存在热点 key ,redis 负载不均衡(针对上集群的方案)。
    ggsl
        9
    ggsl  
       2022-03-21 09:56:01 +08:00
    目前所知大部分是 redis 实现,也有少数自己在服务器内逻辑实现的,效率应该是不如 redis
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2655 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 03:22 · PVG 11:22 · LAX 19:22 · JFK 22:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.