在Cassandra中设置TTL

时间:2018-01-30 11:28:24

标签: apache cassandra cassandra-3.0

在更新Cassandra中的TTL时是否需要设置某些内容?

我有一张这样的表,

CREATE TABLE session(
  tokenId text PRIMARY KEY,
  username text);

我插入这样的数据,

INSERT INTO session(tokenId, username) VALUES ('123123123123','admin') USING TTL 30;

我像这样更新TTL,

UPDATE session USING TTL 30 SET username = 'admin' WHERE tokenid = '123123123123' IF EXISTS;

在哪里它强行更新'用户名',更新需要一套,是否可以更新TTL?

谢谢, 哈利

1 个答案:

答案 0 :(得分:2)

这是一个非常棘手的问题。让我尽力解释我的理解。

基本上,cassandra不允许您更新一行的TTL。如上所述here,为每个列维护TTL。回到您的示例,带有insert值的TTL语句将为insert语句中的所有列创建相同的TTL。同时,update语句仅适用于预期的列(例如username)。希望它有所帮助。

  

INSERT和UPDATE命令都支持为数据设置时间   一列到期。使用CQL设置到期时间(TTL)。

相关问题