我读过有关更新ttl的内容,并且只能通过更新行来实现。 但我想删除ttl。我担心这是同一个过程,但我没有找到任何有关它的信息。有没有办法在不更新所有行的情况下删除ttl?
我所做的是在用户注册时使用ttl保存用户信息。因此,如果用户未验证他/她的邮件地址,则该条目将自动删除。
答案 0 :(得分:1)
以下是官方文档here的摘录。
如果要更改过期数据的TTL,则必须重新插入 使用新TTL的数据。在Cassandra中,数据的插入是 实际上是一个插入或更新操作,取决于是否 存在以前版本的数据。
TTL数据的精度为1秒,在服务器上计算。 因此,一个非常小的TTL可能没有多大意义。 而且,服务器上的时钟应该同步;除此以外 由于到期时间的原因,可以观察到精度降低 在接收初始插入的主要主机上计算但是 然后由群集中的其他主机解释。
这在实践中有点不愉快,但是构建一个非常简单的迁移工具相对容易,你只需遍历整个表并用另一个表中的新TTL重新插入所有记录。
如果计算/存储方面你可以负担得起这个,那么将记录存储两次可能是一个更有说服力的想法,一次使用TTL,一次不使用,只需绕过限制:你不能取消或更改TTL卡桑德拉。