node LRU cache是什么?任何人都可以解释如何实现它?假设我有三层,client-midlayer(句柄调用)-backend(mongoDB),LRU缓存应该在中间层实现。什么是node-lru-cache?
会不错,有一个简单的例子,只是显示它是如何工作的!提前致谢。
node LRU cache是什么?任何人都可以解释如何实现它?假设我有三层,client-midlayer(句柄调用)-backend(mongoDB),LRU缓存应该在中间层实现。什么是node-lru-cache?
会不错,有一个简单的例子,只是显示它是如何工作的!提前致谢。
有关于如何将源代码库中使用它的一个例子:https://github.com/isaacs/node-lru-cache/tree/master/test
我假设你想要的LRU坚持到MongoDB的?如果是这样的话,您需要扩展或重写库,因为它初看起来就像是一个简单的内存中LRU缓存模块。
您还需要考虑Redis为此设置的排序集。如果您有多个前端服务器实例,则每个服务器保留一个LRU实例会导致它们不同步。 Redis的排序集非常适合这个问题,速度非常快。
您可以使用时间戳使它们按最近排序,并且可以通过事务以原子方式读取和更新列表。它绝对适合缓存的目的。
这就是我最初的解决方案:)我正在考虑更复杂的事情。 – nihulus 2012-07-25 06:30:47
@nihulus看看https://github.com/mcollina/redis-command-cache。这是一个结合了lru-cache和redis的模块。您可以通过redis pubsub发送缓存失效消息。 – mikegradek 2014-08-04 04:26:22
LRU缓存只是一个具有固定最大大小的集合,它使用某种方法在插入数据时删除最近最少使用的项目,一旦达到最大大小。尽管如此,我不明白对你的其余问题重要的是什么。这只是一个容器;它不是缓存服务。 – Joe 2012-07-24 11:56:07