interface-cacher

0.5.1 • Public • Published

interface-cacher

npm Build Status Coverage Status NPM version

A simple interface cacher based on ioredis.

JSDoc

Table of Contents

constructor

Parameters

  • payload
    • payload.redis Object? 用于redis的连接
      • payload.redis.host string host ip of redis (optional, default localhost)
      • payload.redis.port number port of redis (optional, default 6379)
      • payload.redis.db number cache db of redis (optional, default 12)
    • payload.prefix string key的默认前缀 (optional, default cache.)
    • payload.expire number key的有效期,单位s (optional, default 5)

get

使用redis为接口加缓存

Parameters

  • payload Object
    • payload.key string 要查找的key
    • payload.executor function 如果未击中,要执行的方法
    • payload.expire number 失效时间, 单位s
    • payload.raw boolean 是否不用 decode/encode 数据 (optional, default false)

Examples

说明:以给getShops接口加缓存为例
要点:executor为一个返回bluebird 的promise
getShops接口如下:
const getShops = (type) => {
  if (type === 0) {
    return Promise.reject(new Error('bad params'));
  }
  return Promise.resolve(['shop01', 'shop02']);
};
 
使用方式:
const Cacher = require('interface-cacher');
 
const cacher = new Cacher();
 
const payload = {
  key: 'getShops',
  executor: getShops.bind(null, 1),
  expire: 100
};
 
cache.get(payload)
 .then((data) => {
   // process the data
 })
 .catch((err) => {
   // handle the exception when encounter with error
 });

Returns Promise<Object> 缓存中数据(击中) 或executor返回数据(未击中)

delete

删除指定缓存

Parameters

Returns Promise<number> n 删除的key的数量, 同ioredis.del

Package Sidebar

Install

npm i interface-cacher

Weekly Downloads

1

Version

0.5.1

License

MIT

Unpacked Size

17.1 kB

Total Files

9

Last publish

Collaborators

  • dennis.ge