ServiceStack.Redis RedisTypedClient TTL

ServiceStack.Redis RedisTypedClient TTL

我正在使用 ServiceStack.Redis v5.10.4 并尝试使用以下代码设置 TTL:

注: mClientsManager = IRedisClientsManager ttl = 时间跨度?

await using var client = await mClientsManager.GetClientAsync(token).ConfigureAwait(false);
var typedClient = client.As<Test>();
await typedClient.SetValueAsync(key, value, ttl.Value, token).ConfigureAwait(false);

查看Redis中的数据,TTL设置为-1。

我做错了什么?

只是一个旁注...我使用了同步方法并且它有效。同样查看此位置,该方法似乎正在调用错误的重载...如果我正在查看正确的来源。

https://github.com/ServiceStack/ServiceStack.Redis/blob/master/src/ServiceStack.Redis/Generic/RedisTypedClient.Async.cs

有什么建议吗?

我刚刚在 this commit. This change is available from the latest v5.10.5 that's now available on MyGet 中修复了这个类型 API。

或者,您可以使用此异步 API:

显式更改密钥的 TTL
await client.ExpireEntryInAsync(key, ttl.Value, token)