开始使用ehcache。与更新的版本一样,我们可以搜索值属性,因此对于给定的缓存,我们可以搜索并获得结果。
例如,假设我的网站从我的应用程序服务器启动时缓存了所有用户的详细信息,并且对于新用户注册,我有一个写入后面的缓存。现在,当用户登录时,我查找缓存并获得一些细节。
这是我做的,关键:“userId”值:新用户(“名称”,年龄);
现在需要时我想查找年龄超过30岁的所有用户,然后我可以使用搜索查询来检索数据集。事实证明这比100万数据更慢,500万次点击几乎是2到3秒。
我的另一个想法:例如,将年龄作为字符串的密钥 key:“userId#age”,其值为:new User(“name”,age)
现在不使用查询,而是使用keypattern查找密钥:like(anyuser#[(nextchar以3开头)最多2个字符),然后返回结果。
我想知道三件事。
第二个想法是否可以使用ehcache实现?如果是这样,那将是表演者吗?
我在查询中做错了什么?花费2秒肯定是与ehcache承诺不一致的事情。
命名密钥的一般策略是什么?它应该是随机的(我不知道这什么时候有用),它是否应该包含一个以可以搜索的方式连接的值?
答案 0 :(得分:0)
使用相同的编号回复您的问题:
您可以为您的用例做的是维护缓存条目,这些条目是您查询的答案。与键usersAbove30
类似,其值为与键中表示的条件匹配的所有用户的列表。