0.5.1 • Published 5 years ago

interface-cacher v0.5.1

Weekly downloads
10
License
MIT
Repository
github
Last release
5 years ago

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