在python中运行model.update(args, kwargs)
时,如果数据没有差异,它实际上没有做任何更改,对吗?如果是这样,它会更新TTL吗?如果没有,我们怎么做才能重置TTL?
使用案例
我们有一个存储扭曲循环信息的模型,我们的TTL为10秒。程序设置为每2秒自动检查一次配置,如果没有,那么我们希望将数据从活动循环中删除。这是一个棘手的地方,一旦为特定的循环设置数据,数据很少会改变。
如果它有用,我可以发布模型和其他信息。
答案 0 :(得分:1)
在Cassandra中执行插入或更新时,即使值相同,新值也会覆盖旧值。这是因为Cassandra在存储新数据之前不会读取现有数据。每次写入只是一个追加操作,而Cassandra不知道新值是否与旧值相同。
当您进行读取时,Cassandra将找到最近的写入,这是当前值。因此,如果您的插入或更新设置了TTL,那么该TTL将覆盖您插入/更新的列的任何先前TTL。
因此,如果您使用10秒的TTL写入数据,那么您需要在10秒钟之前再次写入相同的数据,如果您希望它再保持10秒钟。