TTL 从 datastax java 驱动程序的 ROW 对象获取

TTL get from ROW object of datastax java driver

我们如何获得从 Cassandra 返回的 ROW 的 TTL。

目前我正在获取 TTL 作为 Select cql 查询的一部分,例如SELECT 不,TTL; 然后使用 Row.getInt("TTL");

还有其他更好的方法吗

TTL 是按单元格而不是行设置的。如果你想得到 select val, TTL(val) 来自测试; 以秒为单位显示剩余的 TTL

例如

> insert into test (id, val) VALUES (uuid(), 'some value') using ttl 100;
> select val, TTL(val) from test;

 val           | ttl(val)
---------------+--------------
   hello world |      92

我在插入行后 8 秒执行了 select 查询。

PreparedStatement prep = session.prepare("SELECT val, TTL(val) from TABLE");
BoundStatement boundStmt = new BoundStatement(prep);
Row r = session.execute(boundStmt).one();
r.getInt("TTL(val)");

将以秒为单位为您提供值的 TTL。