gpt4 book ai didi

cassandra - 如何在 Cassandra 中维护主键的最后 N 个版本?

转载 作者:行者123 更新时间:2023-12-02 01:09:27 24 4
gpt4 key购买 nike

CREATE TABLE user_logins (
user_id bigint PRIMARY KEY,
login_time timestamp
)WITH CLUSTERING ORDER BY (login_time DESC);

有没有一种方法可以在 Cassandra 中维护 key 的最后 3 个版本?如果我用这个主键添加更多行,它应该自动截断删除最旧的行以确保一次只维护 3 行?例如,对于每个用户,只维护他们最后 3 个登录时间戳。

一种方法是我使用像列表这样的集合来存储时间戳,然后执行先读后写来获取当前值、修改它并保存它?有没有其他方法我可以在没有时间概念的情况下拥有类似 TTL 的功能,但保持最后 N 个版本?

最佳答案

Cassandra 中没有此类功能,您需要使用变通方法。

如您所说,一种方法是使用列表/映射/集合/UDT 并始终更新(先读后写)它们。

另一种方法是有 N 个表,例如 user_logins_N,在客户端/服务器端,您将循环使用这些表。每个表将只有一个版本的 key 和一个登录时间戳,并且您将始终只保存 N 个版本的登录。

第三种方式,是做一些后台管理过程,将通过 key 并删除旧的/不相关的登录。

关于cassandra - 如何在 Cassandra 中维护主键的最后 N 个版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45737116/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com