Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Redis'的用例&引用;分数“;及;排名;集合的特征_Redis - Fatal编程技术网

Redis'的用例&引用;分数“;及;排名;集合的特征

Redis'的用例&引用;分数“;及;排名;集合的特征,redis,Redis,Redis的集合“得分”和“排名”功能的一些用例是什么(在典型的“排行榜”之外)游戏示例?我正试图找出如何利用这些动态新功能,因为我预期将从使用传统关系数据库转向使用Redis作为持久数据存储。zset是唯一可以排序的密钥类型 例如,您可以想象将特定文章的所有注释键id放入zset, 用户将对每个评论进行上/下投票,这将更改分数值 之后,当您需要绘制注释时,您可以将其排序,首先是更好的注释(如此处所示) 使用ZREMRANGEBYSCORE,您可以想象每天删除所有非常糟糕的评论 但是对于每种re

Redis的集合“得分”和“排名”功能的一些用例是什么(在典型的“排行榜”之外)游戏示例?我正试图找出如何利用这些动态新功能,因为我预期将从使用传统关系数据库转向使用Redis作为持久数据存储。

zset是唯一可以排序的密钥类型

例如,您可以想象将特定文章的所有注释键id放入zset, 用户将对每个评论进行上/下投票,这将更改分数值

之后,当您需要绘制注释时,您可以将其排序,首先是更好的注释(如此处所示)

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


但是对于每种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