用于Redis的“得分”和“排名”集的特征

时间:2013-08-02 20:57:26

标签: redis

Redis的“得分”和套装的“排名”功能有哪些用例(在游戏的典型“排行榜”示例之外?我正试图弄清楚如何利用这些动态新功能作为我期望从使用传统的关系数据库转向Redis作为持久数据存储。

2 个答案:

答案 0 :(得分:5)

ZSET非常适合基于分数的选择或范围,但分数可以是任何数值,例如时间戳。

我们以redis存储所有美国股票的每日股票价格。这是ebay的一个例子......

ZADD key score member [score member ...] 
...
ZADD stocks:ebay 1 30.39 2 32.70 3 31.25 4 31.75 5 29.12 6 29.87 7 29.93

在这种情况下score值通常是长时间戳,除此之外,如果我们想要过去3天的每日价格,我们只需将两个日期转换为时间戳,并使用时间戳范围从redis拉出{ {1}} ...

1 3

查询非常快速,可以满足我们的需求。

希望它有所帮助!

答案 1 :(得分:1)

zset是唯一可以排序的键类型

通过示例,您可以想象将特定文章的所有注释密钥ID放在zset中, 用户将对每条评论进行上/下投票,这将改变评分值

之后当你需要绘制评论时,你可以得到他们的订购,更好的评论在这里(比如这里)

使用ZREMRANGEBYSCORE,您可以想象每天删除所有非常糟糕的评论

但是作为每个redis类型,它们仍然是基本的,给你一个专用的用例很难有一些: - )