gpt4 book ai didi

database - 是否可以使用 Cassandra 作为 LRU 缓存

转载 作者:太空狗 更新时间:2023-10-30 01:57:13 24 4
gpt4 key购买 nike

我想在 Cassandra 中存储键值对,并在达到固定存储大小时以 LRU 方式自动删除条目。

是否可以使用 Cassandra 执行此操作,如果可以,最好的方法是什么。如果没有,是否有任何其他分布式存储系统可以支持此用例,而不必将所有数据保存在内存中。

最佳答案

简短的回答是,不,Cassandra 不支持开箱即用的 LRU。

如果您真的愿意,您可以在 Cassandra 上的应用程序中构建一个 LRU 层来实现相同的效果。这可以通过多种方式完成,但通常您希望维护缓存对象的单独索引以及统计信息/时间戳,并让您的应用程序根据需要清除对象。即便如此,由于 Cassandra 存储数据和管理更新、删除等方式的性质,磁盘空间也不是一个好的上限。Cassandra 不会在删除时立即释放存储空间,而是设置墓碑和旧的稍后删除数据(About Deletes)。

构建自定义缓存层(即在 Cassandra 中)的一个优势是,您可以超越简单的 LRU 逐出并确保更昂贵的对象和/或更频繁(但不是最近)使用的对象被赋予更重的权重,以便即使它们可能被 LRU 清除,它们也会在缓存中保留更长时间。这是否有用完全取决于您的具体用例。但同样,Cassandra 可能会因大量数据变动而变得臃肿,因此需要确保集群得到适当调整并进行日常维护。

实际上,大多数人会部署 Memcache(或类似的)来支持这种用例。

关于database - 是否可以使用 Cassandra 作为 LRU 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22261834/

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