首页 > 解决方案 > 从 Cassandra 填充缓存的正确方法

问题描述

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

那么问题来了?如何使用 Cassandra DB 中的数据正确填充缓存层?

标签: performancecachingmemorycassandra

解决方案


第二个选项是预热或预加载缓存的首选。

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

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


推荐阅读