TTL从datastax java驱动程序的ROW对象中获取
问题描述:
我们如何获得从Cassandra返回的ROW的TTL。TTL从datastax java驱动程序的ROW对象中获取
当前我正在将TTL作为Select cql查询的一部分获取,例如, SELECT NO,TTL; 然后使用Row.getInt(“TTL”);
有没有其他更好的方法来做到这一点。
答
TTLs设置为每个单元格而不是行。如果你想得到 从测试中选择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
我执行select查询插入行后8秒。
答
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值。