Как получить срок действия ключа на Redis при использовании Do tnet Core? - PullRequest
1 голос
/ 23 января 2020

Я следую этому примеру для реализации кэша Redis на Do tnet Core.

К сожалению, кажется, что и Get (ключ), и GetString (ключ) возвращают только значение , а не метаданные, такие как expiry.

Когда я использую redis-cli, я могу получить как данные, так и метаданные, используя HGETALL key

1) "absexp"
2) "637153531959962660"
3) "data"
4) "[{<snip>}]"
5) "sldexp"
6) "-1"

Есть ли способ доступа эти метаданные из моего кода?

Конечно, могут быть обходные пути, такие как добавление срока действия в сам объект данных или добавление второго ключа, который содержит метаданные, но ни одно из решений не является очень элегантным.

1 Ответ

2 голосов
/ 23 января 2020

Предполагается, что вы используете 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...