node.js中的自我缓存缓存

时间:2016-05-02 12:19:56

标签: node.js caching

我想缓存一堆记录,几分钟后记录将无效,为了提高性能,我想在内存数据库中使用。

它只是一个键值,键是字符串,值是json对象。

它必须集中并可扩展到多个节点,它将由Node.JS API和Web应用程序访问

寻找一种解决方案

  1. 在内存缓存中
  2. 按键检索值
  3. 解决方案可以扩展到多个节点
  4. 密钥必须在持续时间
  5. 后过期

    当前解决方案

    1. mysql表

    2. 每条记录都包含到期时间,基于我忽略记录

    3. 服务将定期删除过期的记录

2 个答案:

答案 0 :(得分:1)

我建议使用redis内存数据库中使用最广泛的内存数据库之一,这些数据库可以很好地扩展,并且应该可以设置ttl(生存时间)。

答案 1 :(得分:0)

您可以使用lru cache模块。

var LRU = require("lru-cache")
  , options = { max: 500
              , length: function (n, key) { return n * 2 + key.length }
              , dispose: function (key, n) { n.close() }
              , maxAge: 1000 * 60 * 60 }
  , cache = LRU(options)
  , otherCache = LRU(50) // sets just the max size

cache.set("key", "value")
cache.get("key") // "value"

// non-string keys ARE fully supported
var someObject = {}
cache.set(someObject, 'a value')