2.0.5 • Published 5 years ago

@coolgk/cache v2.0.5

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

@coolgk/cache

a javascript / typescript module

npm install @coolgk/cache

a redis wrapper

Report bugs here: https://github.com/coolgk/node-utils/issues

Examples

import { Cache } from '@coolgk/cache';
import { createClient } from 'redis';
// OR
// const { Cache } = require('@coolgk/cache');
// const { createClient } = require('redis');

const client = createClient({
    host: 'localhost',
    port: 12869,
    password: '----'
});

const cache = new Cache({
    redisClient: client
});

cache.set('abc', {a: 1}, 1).then(console.log); // 'OK'

cache.get('abc').then(console.log); // { a: 1 }

setTimeout(() => {
    cache.get('abc').then(console.log); // null
    client.quit();
}, 1500);

cache.getSetIfNull(
    'abc',
    () => Promise.resolve('data'),
    10
).then((v) => {
    console.log(v); // { a: 1 }
});

Promise.all([
    cache.set('x', 'val x'),
    cache.set('y', 'val y'),
    cache.set('z', 'val z')
]).then(
    () => Promise.all([
        cache.get('x').then(console.log), // val x
        cache.get('y').then(console.log), // val y
        cache.get('z').then(console.log) // val z
    ])
).then(
    () => Promise.all([
        cache.delete('x'),
        cache.delete('y'),
        cache.delete('z')
    ])
).then(
    () => Promise.all([
        cache.get('x').then(console.log), // null
        cache.get('y').then(console.log), // null
        cache.get('z').then(console.log) // null
    ])
);

Cache

Kind: global class

new Cache(options)

ParamTypeDescription
optionsobject
options.redisClientobjectredis client from redis.createClient() redisClient needs to be passed in so the same connection can be used elsewhere and get closed outside this class

cache.set(name, value, expiry) ⇒ promise

Kind: instance method of Cache

ParamTypeDefaultDescription
namestringname of the variable
value*value is always JSON.stringify'ed
expirynumber0expire time in seconds. 0 = never expire

cache.get(name) ⇒ promise

Kind: instance method of Cache
Returns: promise - - cached value

ParamTypeDescription
namestringname of the variable

cache.delete(name) ⇒ promise

Kind: instance method of Cache

ParamTypeDescription
namestring | Array.<string>name(s) of the variable

cache.getSetIfNull(name, callback, expiry) ⇒ promise

get the cached value, if not set, resolve "callback()" and save the value then return it

Kind: instance method of Cache
Returns: promise - - cached value

ParamTypeDefaultDescription
namestringname of the variable
callbackfunctiona callback function which returns a value or a promise
expirynumber0expire time in seconds. 0 = never expire

cache.command(command, ...params) ⇒ promise

Kind: instance method of Cache

ParamTypeDescription
commandstringredis command to run
...paramsarrayparams for the command
2.0.5

5 years ago

2.0.4

6 years ago

2.0.3

6 years ago

2.0.2

6 years ago

2.0.1

6 years ago

2.0.0

6 years ago

1.1.4

6 years ago

1.1.3

6 years ago

1.1.2

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.9

6 years ago

1.0.8

6 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago