从 Cassandra 填充缓存的正确方法

Posted

技术标签:

【中文标题】从 Cassandra 填充缓存的正确方法【英文标题】:Proper way to populate cache from Cassandra 【发布时间】:2021-10-16 18:17:54 【问题描述】:

我想在我的应用程序中有一个内存缓存层。要使用项目填充缓存,我必须从大型 Cassandra 表中获取数据。不推荐全选,因为不使用分区键,读操作很慢。在此之前,我可以使用必须再次读取的其他 Cassandra 表“预测”分区键,但相对而言它是一个较小的卷表。从用户表中读取数据并创建可能存在或不存在于初始表中的潜在分区键(userX、userY)列表之后。使用该列表尝试通过使用每个潜在键执行选择查询来填充缓存。这听起来也不是一个好主意。

所以问题是?如何使用 Cassandra DB 中的数据正确填充缓存层?

【问题讨论】:

【参考方案1】:

第二个选项更适合预热或预加载缓存。

来自多个客户端/应用实例的单分区异步查询比进行全表扫描要好得多。来自大量客户端的异步查询将负载高效地分配到集群中的所有节点,这就是它们性能更好的原因。

应该说,如果您的数据模型正确,并且您的集群规模正确,您可以实现个位数毫秒的延迟。我与许多大型组织合作,他们的 6-8 毫秒读取具有 95% 的 SLA。干杯!

【讨论】:

以上是关于从 Cassandra 填充缓存的正确方法的主要内容,如果未能解决你的问题,请参考以下文章

cass怎么给实体添加属性

从 String 到 *const i8 的正确方法是啥?

在 cassandra 中导入和导出模式

实战-Cassandra之压测

连接 Cassandra NoSQL DB 并将响应作为 JSON 响应获取

无法连接到 python 上的 cassandra(使用 cassandra-driver