Java 搜索引擎中的缓存管理
我想知道缓存管理的最终解决方案是什么。 假设我有一台服务器和无限数量的客户端连接到它。 客户端不断向服务器发送搜索请求(让我们调用客户端的搜索请求-'x'),服务器用一些-'y'回答客户端。 现在,为了加速我的搜索引擎,我想把最流行的请求(x)保存在缓存中,并把它们的答案(y)保存下来。 (请注意,对于客户端发送到服务器的每个相同的x,它们必须获得相同的y,这一点很重要)。 我还得到了一个数据库,它保存了所有以前的请求(x,y,z-x请求的次数) 我在更新缓存时遇到了一些问题:Java 搜索引擎中的缓存管理,java,caching,Java,Caching,我想知道缓存管理的最终解决方案是什么。 假设我有一台服务器和无限数量的客户端连接到它。 客户端不断向服务器发送搜索请求(让我们调用客户端的搜索请求-'x'),服务器用一些-'y'回答客户端。 现在,为了加速我的搜索引擎,我想把最流行的请求(x)保存在缓存中,并把它们的答案(y)保存下来。 (请注意,对于客户端发送到服务器的每个相同的x,它们必须获得相同的y,这一点很重要)。 我还得到了一个数据库,它保存了所有以前的请求(x,y,z-x请求的次数) 我在更新缓存时遇到了一些问题: 如果我在数据库中
因为可能有一些请求过去非常流行,现在不再流行了,如果有新的流行请求,它可能需要很长时间才能进入缓存,这取决于播放的数量(因为我不必扫描整个数据库,所以速度也必须更快)。这是管理缓存的合法方式吗?一位单身汉要求计算机为他找到完美的伴侣 “我想要一个身材矮小、魅力四射、热爱水上运动、喜欢集体活动的伴侣。” 电脑回答:“玛丽是一只企鹅” (引自:) 如果您有无限数量的客户机,那么最终的缓存解决方案是让客户机转发您的数据。你可以通过互联网做到这一点。正在执行此操作的示例应用程序可用,例如bit torrent 在缩小需求范围后,请查看各种开源Java缓存实现:
- 阿帕奇点火
- apachejava缓存系统
- 阿帕奇测地线
- 伊尼菲尼斯潘
- 黑兹卡斯特
- EHCache
- 谷歌番石榴
- 咖啡因
也许我应该把我的缓存实现命名为“终极缓存”。但是那样的话,它就不存在了。以下是一些想法:
这个问题对StackOverflow来说太宽泛了。此外,问题不是要求您帮助编写您已经编写的代码;它更具概念性。