我正在尝试实现一个简化的内存缓存“表”,其中有两种类型的索引:主索引和辅助索引。
主索引将单个键(主键)映射到唯一值(Map 接口)
二级索引将单个键映射到值集合(Multimap 符合要求)
非常类似于 RDBMS 世界中的表,其中一个表有多个查找列。有时您想按 PK 搜索,有时返回基于公共属性的行列表。现在,除了等于 (=) 之外,不需要其他操作(即没有范围查询或模式匹配)。
将缓存语义添加到上述数据结构(驱逐、数据填充/缓存加载器、刷新等),这几乎是需要的。
我想就如何最好地解决给定问题征求您的意见。应该是 Cache per index 还是 Cache (for PK) + (synchronized) Multimap for secondary index?
任何帮助深表感谢。
问候。