Servicestack redis 客户端:使用时间跨度过期设置密钥失败
Servicestack redis client: setting a key with timespan expiration fails using
以下示例在设置时间跨度过期的密钥时失败。
将到期时间设置为日期时间时,它会通过。我做错了什么?
using (var redisClient = new RedisClient(cacheHost[0]))
{
redisClient.Set<string>("mykey", "myVal", TimeSpan.FromMinutes(90)); // fails,exception {"No more data, sPort: 59862, LastCommand: "}
redisClient.Set<string>("mykey", "session",DateTime.UtcNow.AddMinutes(90)); // OK
Console.WriteLine(redisClient.Get<string>("mykey"));
}
我正在使用 ServiceStack 4.0.42 和 redis 2.6.14
注意 Redis 上的建议是你 shouldn't use Redis 2.6 所以我首先建议升级 redis-server。
documentation for SET 命令表明 2.6.12+ 支持及时过期值所需的必要 SET 选项,但可能 2.6.14 仍然不完全支持,因为这在我的本地 2.8.4 上没有问题redis 服务器。
以下示例在设置时间跨度过期的密钥时失败。 将到期时间设置为日期时间时,它会通过。我做错了什么?
using (var redisClient = new RedisClient(cacheHost[0]))
{
redisClient.Set<string>("mykey", "myVal", TimeSpan.FromMinutes(90)); // fails,exception {"No more data, sPort: 59862, LastCommand: "}
redisClient.Set<string>("mykey", "session",DateTime.UtcNow.AddMinutes(90)); // OK
Console.WriteLine(redisClient.Get<string>("mykey"));
}
我正在使用 ServiceStack 4.0.42 和 redis 2.6.14
注意 Redis 上的建议是你 shouldn't use Redis 2.6 所以我首先建议升级 redis-server。
documentation for SET 命令表明 2.6.12+ 支持及时过期值所需的必要 SET 选项,但可能 2.6.14 仍然不完全支持,因为这在我的本地 2.8.4 上没有问题redis 服务器。