Redis搜索匹配值的匹配键

时间:2014-01-31 07:30:32

标签: caching redis key-value

好的,在REDIS中如果我只是想设置键=一个频道名称 和价值=付费或免费......

所以最终生病了有一个列表100s,1000s等等的键和值 密钥的价值将是支付或免费的。

     channelName, paid or free

所以,那么我想来搜索 并要求db给我所有的值为免费的频道

最好的方式/有效的方法来设置它?

我基本上想要查询并返回列表或字典中等于某个值的所有键的列表......

1 个答案:

答案 0 :(得分:1)

您可以使用sorted sets,会员价值为0(免费)或1(付费)。

在单个键中,您可以存储已排序集的成员,并为每个成员指定一个小数值。将freepaid抽象为01值,您可以将成员(例如,在您的情况下,频道)添加到集合中,然后再查询这些值。 / p>

127.0.0.1:6379> ZADD mychannels 0 1stchannel 1 2ndchannel 1 3rdchannel 0 4thchannel
(integer) 4
127.0.0.1:6379> ZRANGEBYSCORE mychannels 0 0 /* Querying free channels */
1) "1stchannel"
2) "4thchannel"
127.0.0.1:6379> ZRANGEBYSCORE mychannels 1 1 /* Querying paid channels */
1) "2ndchannel"
2) "3rdchannel"