store-ttl

a simple key value store that support ttl, and you can custom setter,getter,remove function such as redis.

Usage no npm install needed!

<script type="module">
  import storeTtl from 'https://cdn.skypack.dev/store-ttl';
</script>

README

a simple key value store that support ttl,and you can custom setter,getter,remove function such as redis.

Build Status via Travis CI Coverage Status

install

npm install store-ttl

usage

node_redis demo :

var redis = require("redis"),
  client = redis.createClient(6379,'localhost');

var STORE = require('store-ttl');
var storeInstance = new STORE({
  set:function(key,data,ttl,callback){
    client.SETEX(key,ttl,data,function(err,reply){
      callback(err,reply);
    });
  },
  get:function(key,callback){
    client.GET(key,function(err,reply){
      callback(err,reply);
    });
  },
  remove:function(key,callback){
    client.DEL(key,function(err,data){
      callback(err,data);
    }); 
  },
  ttl:60, //the unit is second,defualt one day.
  ttlUnit:true, //if true ttl is milliseconds but second
  namespace:'test-store-ttl', //default:store-ttl-
  autoClean: false, //default to false, just valid when not custom set, get ,remove function.
  cleanTimeoutSecond: 300 //default to 5 minutes, when autoClean is true.
});
storeInstance.set('test-redis','ok',10,function(err,data){
  console.log(err,data);
})
storeInstance.get('test-redis',function(err,data){
  console.log(err,data);//data:ok
})
setTimeout(function(){
  storeInstance.get('test-redis',function(err,data){
    console.log(err,data);//data:null
  })
},10001)

API

set

storeInstance.set('test-redis','ok',10,function(err,data){
  console.log(err,data);
})

get

storeInstance.get('test-redis',function(err,data){
  console.log(err,data);
})

update

storeInstance.update('test-redis','update-ok',function(err,data){
  console.log(err,data);
})

remove

storeInstance.remove('test-redis',function(err,data){
  console.log(err);
})

getNameSpace

console.log(storeInstance.getNameSpace());//test-store-ttl

test

//test
npm test

//coverage

npm run cov

code coverage

=============================== Coverage summary ===============================
Statements   : 98.2% ( 109/111 )
Branches     : 84% ( 42/50 )
Functions    : 96.15% ( 25/26 )
Lines        : 98.2% ( 109/111 )
================================================================================

version:

  • 3.x.x
    1. support redis client set object
  • 2.x.x
    1. api return json : {data:orignData,ttl:ttl,expire:expire}.
    2. add update api.
  • 1.x.x api return origin data