【发布时间】:2016-04-11 15:57:07
【问题描述】:
让我们看看以下场景:
一个网站有 10000 个播放器,为了让问题更容易,我使用只有一个表的 mysql 存储播放器:“player_table”
------这里有表-----
名称字符串
积分
现在,我想通过 socre 显示这些球员的前 100 名。
如果只用mysql的话,每次都要计算Top 100,所以我选择Redis来存储Top 100的排序集数据类型。
但是如果其中一个玩家的分数发生变化,我该怎么办,每次都更新前 100 名?
感谢您的提前
【问题讨论】:
-
最简单的事情就是将所有玩家及其分数存储在排序集中。然后更新分数并获得前100名是微不足道的。如果你真的只想将前100名存储在Redis中,那么你必须更新数据库中的分数,将其与前100名中的最低分数进行比较,然后可能会更改 Redis 数据集中的玩家。