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

时间:2016-06-15 04:39:07

标签: java datastax datastax-java-driver

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

目前我正在提取TTL作为Select cql查询的一部分,例如选择NO,TTL; 然后使用Row.getInt(“TTL”);

还有其他更好的方法吗?

2 个答案:

答案 0 :(得分:1)

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。

答案 1 :(得分:0)

每个单元格而不是行设置TTL。如果你想得到 从测试中选择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查询。