在 Cassandra 中设置 TTL

Setting TTL in Cassandra

在Cassandra中更新TTL时是否需要设置一些东西?

我有一个table这样的,

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 吗?

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

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

Both the INSERT and UPDATE commands support setting a time for data in a column to expire. Use CQL to set the expiration time (TTL).