通过 C# 提供 TTL 后,Couchbase 密钥未显示

Couchbase key not expring after giving a TTL via C#

我正在使用 Couchbase 的 C# 驱动程序提供的 Atomic 'Increment' 函数,它接受一个参数以将到期时间作为 TimeSpan 传递。

我将过期参数中的值作为 TimeSpan.FromMinutes(value) 传递,但在刷新 couchbase web 控制台后,密钥仍未被删除设定时间后。

这里是示例代码

 IOperationResult<ulong> incrementResult;

 incrementResult = myBucket.Increment(strKeyName, 1, 1,TimeSpan.FromMinutes(dblTTL));

在上面的代码中,变量 'dblTTL' 是 TimeSpan[ 的 Minute 属性 =27=]变量。

.NET Sdk 版本 - 2.0 , Couchbase Dll 版本 - 2.0.3.0

任何有关此问题的帮助将不胜感激!

没关系,我刚刚找到解决方案。

  1. 我使用了 TimeSpan.TotalMinutes 属性 而不是 TimeSpan.Minutes as TotalMinutes returns 与 Minutes returns 相比,精确到毫秒的双精度值] 只是作为整数的总持续时间的分钟部分。

  2. 其次,最初创建时没有使用原子 increment() 函数设置 TTL 的密钥,但稍后在尝试 increment()相同的key现在通过传递一个TTL值没有使key过期。

所以如果我必须使用原子 increment() 函数为任何键设置 TTL,我必须确保在为第一次,而不是在稍后更新其值时。