有没有办法获取 Redis 密钥的空闲时间

本文关键字:时间 密钥 Redis 获取 有没有 | 更新日期: 2023-09-27 17:56:41

到目前为止,我们已经使用StackExchage.Redis Link完成了所有基本的crud操作。我们还使用 StackExchange.Redis.Extention Link 的包装器在 Redis 中存储复杂对象。

我们通过 Redis 管理用户会话令牌。我们需要给会话令牌一个滑动到期时间。为此,我们计划使用会话密钥空闲时间。

通过 StackExchange API 1 或 StackExchange.Redis.Extensions API 获取密钥空闲时间的最佳方法是什么?2

一种方法可能是从 C# 客户端执行 Redis 的命令 DEBUG OBJECT,以使用 DebugObject 的方法获取特定键的空闲时间。

2

还有其他更好的方法来处理这种情况或执行对象命令的方法吗?3

有没有办法获取 Redis 密钥的空闲时间

这与其说是答案,不如说是评论,但我没有足够的代表:

IIRC,Redis密钥可以写入过期时间。为什么不定期写入令牌以更新过期时间?或者,如果您在令牌过期后仍然需要它们,为什么不只使用时间戳呢?

从StackExchange.Redis 2.0开始,现在通过命令KeyIdleTime和KeyIdleTimeAsync支持此功能。

示例用法可以是:

RedisKey myKey = "my-key";
TimeSpan? idleTime = database.KeyIdleTime(myKey);