Ehcache查找策略:精细密钥与查询

时间:2015-09-16 03:55:17

标签: caching ehcache

开始使用ehcache。与更新的版本一样,我们可以搜索值属性,因此对于给定的缓存,我们可以搜索并获得结果。

例如,假设我的网站从我的应用程序服务器启动时缓存了所有用户的详细信息,并且对于新用户注册,我有一个写入后面的缓存。现在,当用户登录时,我查找缓存并获得一些细节。

这是我做的,关键:“userId”值:新用户(“名称”,年龄);

现在需要时我想查找年龄超过30岁的所有用户,然后我可以使用搜索查询来检索数据集。事实证明这比100万数据更慢,500万次点击几乎是2到3秒。

我的另一个想法:例如,将年龄作为字符串的密钥 key:“userId#age”,其值为:new User(“name”,age)

现在不使用查询,而是使用keypattern查找密钥:like(anyuser#[(nextchar以3开头)最多2个字符),然后返回结果。

我想知道三件事。

  1. 第二个想法是否可以使用ehcache实现?如果是这样,那将是表演者吗?

  2. 我在查询中做错了什么?花费2秒肯定是与ehcache承诺不一致的事情。

  3. 命名密钥的一般策略是什么?它应该是随机的(我不知道这什么时候有用),它是否应该包含一个以可以搜索的方式连接的值?

1 个答案:

答案 0 :(得分:0)

使用相同的编号回复您的问题:

  1. 不,除了使用搜索功能之外,Ehcache没有允许使用密钥模式恢复映射的方法。
  2. 您的搜索查询可能没有任何问题。 OpenSource Ehcache搜索是一种不依赖索引创建的强力解决方案。所以当你有很多条目时它很慢。
  3. 关键命名取决于您 - 特别是给出1的答案。
  4. 您可以为您的用例做的是维护缓存条目,这些条目是您查询的答案。与键usersAbove30类似,其值为与键中表示的条件匹配的所有用户的列表。