确定存储文档的TTL-Couchbase
我有一堆文件存储在couchbase bucket中。我想找到每个文档的TTL。有办法吗 编辑: 我创建了一个视图来显示元数据。我假设下面是unix的到期时间确定存储文档的TTL-Couchbase,couchbase,ttl,Couchbase,Ttl,我有一堆文件存储在couchbase bucket中。我想找到每个文档的TTL。有办法吗 编辑: 我创建了一个视图来显示元数据。我假设下面是unix的到期时间 { "id": "beer-Milk-New", "rev": "9-145c05b4021400005771779102000000", "expiration": 1467053969, "flags": 33554432 } 您没有指定Couchbase Server的哪个版本,但此回答假设您使用的是4.x
{
"id": "beer-Milk-New",
"rev": "9-145c05b4021400005771779102000000",
"expiration": 1467053969,
"flags": 33554432
}
您没有指定Couchbase Server的哪个版本,但此回答假设您使用的是4.x,并且可以运行N1QL查询 我认为你的思路是对的。查看这篇关于在到期之前检测到期的博客文章: 基本上你需要两个步骤。首先,创建一个关于过期时间的索引
CREATE INDEX iExpiration ON default(exp_datetime) USING GSI;
我不认为这是绝对必要的,但它会提高性能
其次,只需运行一个N1QL查询,如下所示(它将列出将在未来30秒内过期的文档)
选择元(默认).id*
默认
其中日期差(STR_至UTC(exp_datetime),MILLIS_至UTC(DATE_ADD_MILLIS(现在是MILLIS(),30,“秒”),“秒”)<30
STR_TO_UTC(exp_datetime)不丢失;
因此,如果您想找到每个文档的TTL,可能需要从当前时间中减去
exp\u datetime
(我相信这是CLOCK\u MILLIS()
)。您没有指定Couchbase Server的哪个版本,但这个答案假设您使用的是4.x,并且可以运行N1QL查询
我认为你的思路是对的。查看这篇关于在到期之前检测到期的博客文章:
基本上你需要两个步骤。首先,创建一个关于过期时间的索引
CREATE INDEX iExpiration ON default(exp_datetime) USING GSI;
我不认为这是绝对必要的,但它会提高性能
其次,只需运行一个N1QL查询,如下所示(它将列出将在未来30秒内过期的文档)
选择元(默认).id*
默认
其中日期差(STR_至UTC(exp_datetime),MILLIS_至UTC(DATE_ADD_MILLIS(现在是MILLIS(),30,“秒”),“秒”)<30
STR_TO_UTC(exp_datetime)不丢失;
因此,如果您想找到每个文档的TTL,您可能需要从当前时间中减去
exp\u datetime
(我相信这是CLOCK\u MILLIS()
)。请注意,这里必须为每个文档显式添加和维护exp\u datetime
。Couchbase不会通过普通方式自动公开实际的TTL。请注意,exp\u datetime
此处必须为每个文档明确添加和维护。Couchbase不会通过普通方式自动公开实际TTL。