Redis'的用例&引用;分数“;及;排名;集合的特征
Redis的集合“得分”和“排名”功能的一些用例是什么(在典型的“排行榜”之外)游戏示例?我正试图找出如何利用这些动态新功能,因为我预期将从使用传统关系数据库转向使用Redis作为持久数据存储。zset是唯一可以排序的密钥类型 例如,您可以想象将特定文章的所有注释键id放入zset, 用户将对每个评论进行上/下投票,这将更改分数值 之后,当您需要绘制注释时,您可以将其排序,首先是更好的注释(如此处所示) 使用ZREMRANGEBYSCORE,您可以想象每天删除所有非常糟糕的评论Redis'的用例&引用;分数“;及;排名;集合的特征,redis,Redis,Redis的集合“得分”和“排名”功能的一些用例是什么(在典型的“排行榜”之外)游戏示例?我正试图找出如何利用这些动态新功能,因为我预期将从使用传统关系数据库转向使用Redis作为持久数据存储。zset是唯一可以排序的密钥类型 例如,您可以想象将特定文章的所有注释键id放入zset, 用户将对每个评论进行上/下投票,这将更改分数值 之后,当您需要绘制注释时,您可以将其排序,首先是更好的注释(如此处所示) 使用ZREMRANGEBYSCORE,您可以想象每天删除所有非常糟糕的评论 但是对于每种re
但是对于每种redis类型,它们仍然是基本的,给你一个专用的用例是很难的,可以有一些:-)zset是唯一可以排序的键类型 例如,您可以想象将特定文章的所有注释键id放入zset, 用户将对每个评论进行上/下投票,这将更改分数值 之后,当您需要绘制注释时,您可以将其排序,首先是更好的注释(如此处所示) 使用ZREMRANGEBYSCORE,您可以想象每天删除所有非常糟糕的评论
但是对于每种redis类型,它们仍然是基本的,给你一个专用的用例是很难的,可能会有一些:-)
ZSET
s对于基于分数的选择或范围是很好的,但是分数可以是任何数值,比如时间戳
我们在redis中存储所有美国股票的每日股价。下面是易趣的一个例子
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天的每日价格,我们只需将两个日期转换为时间戳,并使用时间戳范围13
从redis中提取
zrangebyscore stocks:ebay 1 3
1) "30.39"
2) "32.70"
3) "31.25"
查询速度非常快,适合我们的需要
希望有帮助
ZSET
s非常适合基于分数的选择或范围,但分数可以是任何数值,如时间戳
我们在redis中存储所有美国股票的每日股价。下面是易趣的一个例子
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天的每日价格,我们只需将两个日期转换为时间戳,并使用时间戳范围13
从redis中提取
zrangebyscore stocks:ebay 1 3
1) "30.39"
2) "32.70"
3) "31.25"
查询速度非常快,适合我们的需要
希望有帮助 zset不是二叉树。它是字典和跳过列表的组合。算法的复杂性也不同。Redis源代码:这种方法可能有一个缺陷:因为这是一个集合,当添加重复的股票价格时,它不会被存储<代码>ZADD股票:ebay 8 30.39zset不是二叉树。它是字典和跳过列表的组合。算法的复杂性也不同。Redis源代码:这种方法可能有一个缺陷:因为这是一个集合,当添加重复的股票价格时,它不会被存储<代码>ZADD股票:易趣8 30.39