多键和值对搜索

时间:2015-04-30 14:01:51

标签: java algorithm caching data-structures

我们计划在应用程序端缓存DB表(以避免DB调用)。我们的缓存是关键&价值对实施。如果我使用主键(column1)作为键,所有其他数据作为值,那么我们如何对缓存执行以下查询?

  

从表中选择*,其中column1 =?
  从表中选择*   列2 =?和column3 =?
从表中选择*,其中column4 =?和   column5 =?和column6 =?

最简单的选择是构建如下3个缓存。

  

(column1) - >数据
(第2列+第3列) - >数据
(第4栏+第5栏) - >   数据

还有其他更好的选择吗?

关键点:

  • 表包含数百万条记录
  • 我们正在使用Java ConcurrentHashMap进行缓存实现。

1 个答案:

答案 0 :(得分:1)

您提到必须缓存数百万条记录。那是一个相当大的数字。我不建议您构建自己的缓存框架,尤其不是基于简单的数据结构,如HashMaps。 我强烈推荐Redis - 在http://redis.io查看。 Twitter,Stackoverflow等公司正在使用Redis来缓存它们。

以下是Redis的现场演示 - http://try.redis.io