我使用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
答案 0 :(得分:1)
不,没有内置方法可以做到这一点。您必须使用SCAN
命令迭代所有键,并选择与给定模式匹配的键。
但是,如果您始终对表达式使用相同的m
,则可以为每个n
预先计算id
,并将n
作为其中的一部分键。通过这种方式,您可以使用Redis'模式匹配以获取这些特定的密钥。
例如,假设m == 2
,您可以拥有以下新密钥:phones:initial:1:1
,phones:initial:0:2
,phones:initial:1:3
,phones:initial:0:4
。要获取与phones:initial: and id % 2 == 0
匹配的密钥,请使用以下命令:SCAN 0 MATCH phones:initial:0:*