【发布时间】:2014-07-20 14:18:22
【问题描述】:
我需要为每个键保存一些具有不同 TTL 的值。
例如 - 对于 XXXX,值 - val1(到期时间:10),val2(到期时间:20)
选项 1: 我的最佳做法可能是: 使用每个成员到期的哈希/集合。
很遗憾,Redis 的 containers(列表、哈希、集合和排序集合)不支持每个成员的到期,尽管过去曾多次请求此功能。
选项 2: 所以我不得不这样做:
SETEX XXXX:0 10 val1
SETEX XXXX:1 20 val2
现在,我想获取所有尚未过期的值,它们的键以 XXXX 开头。
所以我尝试了这个:
127.0.0.1:6379> keys XXXX:*
1) "XXXX:0"
2) "XXXX:1"
但我想得到 values,而不是 keys!
选项3:我该怎么做而不是将值放入键中:
SETEX XXXX:val1 10 val1
SETEX XXXX:val2 20 val2
127.0.0.1:6379> keys XXXX:*
1) "XXXX:val1"
2) "XXXX:val2"
这将是我最后的选择。我将不得不在: 之后使用字符串...
知道如何使用更好的方法来实现选项 1(替代),或者至少是选项 2?
【问题讨论】:
-
限制是这需要在单个命令中完成?
-
是的。我有很多键,所以我不想通过每个键获取它们的值。可能是性能问题。
-
一定有办法做到这一点。
标签: regex redis key-value ttl webdis