Redis - 键,表达

时间:2017-02-04 19:54:22

标签: redis

我使用Redis和ruby。有记录:

"phones:initial:#{id}"

redis.hset "phones:initial:1", "query", query
redis.hset "phones:initial:2", "query", query
redis.hset "phones:initial:3", "query", query
redis.hset "phones:initial:4", "query", query
...

是否可以获取密钥,其中id对应于表达式?

"phones:initial: and id % m = n

1 个答案:

答案 0 :(得分:1)

不,没有内置方法可以做到这一点。您必须使用SCAN命令迭代所有键,并选择与给定模式匹配的键。

但是,如果您始终对表达式使用相同的m,则可以为每个n预先计算id,并将n作为其中的一部分键。通过这种方式,您可以使用Redis'模式匹配以获取这些特定的密钥。

例如,假设m == 2,您可以拥有以下新密钥:phones:initial:1:1phones:initial:0:2phones:initial:1:3phones:initial:0:4。要获取与phones:initial: and id % 2 == 0匹配的密钥,请使用以下命令:SCAN 0 MATCH phones:initial:0:*