Redis - 键、表达式

标签 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
...

是否可以获取key,其中id对应一个表达式?

"phones:initial: and id % m = n

最佳答案

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

但是,如果您始终对表达式使用相同的 m,则可以为每个 id 预先计算 n,并使 n 作为 key 的一部分。这样,您就可以使用 Redis 的模式匹配来获取那些特定的键。

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

关于Redis - 键、表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42044907/

相关文章:

redis - sscan 不返回部分成员

python - 如何使用 Redis 缓存 HTTP Response 对象

c# - 直接对redis对象应用分页和排序

docker 组成 : Cannot connect to Redis

php - 事件不会在 laravel 的 redis 中发布

django - 在Django中如何实现redis连接管理的建议方式

docker - 在 Redis 容器上使用 Redis-CLI

lua - 实现 CAS(检查和设置)的 Redis Lua 脚本?

redis - MULTI 应该在 Redis 集群上工作吗?

memcached - 可扩展对象的键值存储