使用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解析到其他密钥服务器端的方法?
答案 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)来加快速度。