Redis在列表/集中存储ID

时间:2011-06-10 17:33:13

标签: redis

使用redis,如果我有一个产品列表,例如top100(其中一个产品是一个hashset,可能属于许多列表,如christmasideas,toprated等。)

e.g。 top100:[“产品:2”,“产品:234”,“产品:3423”,......,“产品:7343”]

如果我想拉出top100的前10个项目来显示在网页上,这是正确的方法

1)获取列表的左侧范围0到10,LRANGE top100 0 10 2)然后迭代返回的10个ID并为每个ID执行GET 3)项目和展示

或者Redis是否提供了将ID解析到其他密钥服务器端的方法?

1 个答案:

答案 0 :(得分:0)

目前Redis没有提供解析ID服务器端的方法(Lua脚本分支可以 - 但仍然是实验性的。)

然而,您可以在两个命令(Ruby)中执行您所描述的内容:

top_10_ids = redis.lrange('top100', 0, 10)
top_10 = redis.mget(*top_10_ids)

即。执行MGET一次性检索所有值 - 但这假定值是标量。如果值是哈希值,则必须迭代每个值并执行HGETALL,但您可以利用流水线操作(请参阅http://redis.io/topics/pipelining)来加快速度。