Giter Club home page Giter Club logo

store-ttl's Introduction

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
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

store-ttl's People

Contributors

navyxie avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.