如何使用Dotnet Core获取Redis上密钥的到期时间?

我正在按照此示例在Dotnet

Core上实现Redis缓存。

不幸的是,似乎Get(key)和GetString(key)都只返回值,而不是诸如过期之类的元数据。

当我使用redis-cli时,我可以使用来检索数据和元数据 HGETALL key

1) "absexp"

2) "637153531959962660"

3) "data"

4) "[{<snip>}]"

5) "sldexp"

6) "-1"

有什么办法可以从我的代码访问此元数据?

当然,可能存在一些变通办法,例如在数据对象本身中添加有效期限或添加包含元数据的第二个键,但是这两种解决方案都不是很优雅。

回答:

假设您正在使用Microsoft.Extensions.Caching.StackExchangeRedis。

无法通过查看文档和源代码来解决这个问题。

您将必须直接使用StackExchange.Redis获取它。

遵循RedisCache.cs上使用的相同方法:

//RedisCacheOptions options as passed to RedisCache contructor.

ConnectionMultiplexer connection = ConnectionMultiplexer.Connect(options.ConfigurationOptions);

IDatabase cache = connection.GetDatabase();

HashEntry[] results = cache.HashGetAll(key);

以上是 如何使用Dotnet Core获取Redis上密钥的到期时间? 的全部内容, 来源链接: utcz.com/qa/414899.html

回到顶部