0.1.4 • Public • Published


Node.js Seneca in-memory caching module.

This module is a plugin for the Seneca framework. It provides a set of common caching actions (get, set etc.), backed by lru-cache. It also exposes some lru-cache specific actions (peek, has, keys, values, reset).

By moving cache operations into Seneca, you can change your cache implementation or business rules at a later point. For example, you might decide to send certain kinds of keys to a different cache mechanism, such as redis.

Current Version: 0.1.4

Tested on: Seneca 0.5.21, Node 0.10.31

Build Status

Quick example

This code snippet sets a value and then retrieves it.

var seneca = require('seneca')();
seneca.ready(function(err) {
  seneca.act({role: 'cache', cmd: 'set', key: 'k1', val: 'v1'}, function(err) {
    seneca.act({role: 'cache', cmd: 'get', key: 'k1'}, function(err, out) {
      console.log('value = ' + out)

The full action argument pattern can be a bit tedious, so use a Seneca pin to make things more convenient:

var cache ={role:'cache', cmd:'*'});
cache.set({key: 'k1', val: 'v1'}, function(err) {
  cache.get({key:'k1'}, function(err, out) {
    console.log('value = ' + out);


npm install seneca
npm install seneca-cache

Common Cache API

Seneca has a common caching API with the following actions:

  • role:cache, cmd:set store a value - key and val arguments required
  • role:cache, cmd:get retreive a value - key argument is required
  • role:cache, cmd:add store a value, only if the key does not exist - key and val arguments required
  • role:cache, cmd:delete delete a value - key argument is required, no error if key does not exist
  • role:cache, cmd:incr increment a value - key and val (integer) arguments required
  • role:cache, cmd:decr decrement a value - key and val (integer) arguments required

All caching plugins, including this one, implement this action API.


You can use any of the options from the lru-cache module directly as options to this plugin:

seneca.use('cached', {
  lrucache: {
    max: 1000,
    maxAge: 1000 * 60 * 60,
    length: function(n) {return n.length}


mocha test/cache.test.js


npm i seneca-cache

DownloadsWeekly Downloads






Last publish


  • darsee
  • mihaidma
  • paolochiodi
  • rjrodger