问题描述
我正在使用 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。
我做错了什么?
只是一个旁注......我使用了同步方法并且它有效。同样查看此位置,该方法似乎调用了错误的重载...如果我正在查看正确的来源。
有什么建议吗?
解决方法
我刚刚在 this commit 中修复了这个类型化的 API。此更改可从现在 available on MyGet 的最新 v5.10.5 中获得。
或者,您可以使用此异步 API 显式更改密钥的 TTL:
await client.ExpireEntryInAsync(key,ttl.Value,token)