4

在我要移植到 Redis 的键值持久性 API 中,我正在尝试实现一个函数来更新键的生存时间。原始代码将 ttl 存储为时间戳和分钟数;ttl 通过写入新的时间戳来更新(密钥在时间戳 + delta 之后过期)。

我注意到 Redis 提供了一个TTL命令,但它只提供了剩余时间。

我想知道是否有办法从 Redis 中检索原始 TTL(使用EXPIRE等设置),或者我是否需要将 TTL 元字段添加到我存储的值中(就像原始代码一样)。

编辑:我正在使用 Redis Server v2.4.10

4

1 回答 1

4

在内部,Redis 存储将 TTL 转换为 unix 时间戳。请参阅db.c 中的函数 expireGenericCommand。因此,Redis 无法返回您指定的 TTL,仅仅是因为它没有以那种格式存储它。

如果对您的应用程序很重要,您将需要添加一个 TTL 元字段。

于 2012-09-18T04:03:30.070 回答