0.1.2 • Published 6 months ago
@vovan.qqq/server.cache v0.1.2
@vovan.qqq/server.cache
A server cache package written in Typescript.
Table of Contents
Install
npm i @vovan.qqq/server.cache
API Reference
new MemoryCache(cleanTimeout)
Create a new memory cache.
Param | Type | Description |
---|---|---|
cleanTimeout | number? | Frequency of checking elements for relevance (ms). Optional, default 5000 ms |
new RedisCache(name, optionsOrInstance)
Create a new redis cache.
Param | Type | Description |
---|---|---|
name | ICache | |
optionsOrInstance | object | Connect redis options or ioredis instance (see ioredis) |
new CacheItem(cache, keyFn, expiredIn)
Create a new cache item.
Param | Type | Description |
---|---|---|
cache | string | Object implementing the ICache interface (MemoryCache or RedisCache) |
keyFn | Function | Function for cache key generation |
expiredIn | number | Key expiration time value (ms) |
Examples
import {
MemoryCache,
RedisCache,
CacheItem
} from '@vovan.qqq/server.cache';
const mCache = new MemoryCache(5000);
const rCache = new RedisCache('some.cache', {
host : '127.0.0.1',
port : 6379,
username: 'username',
password: 'password'
db : 0
});
const mItem = new CacheItem<number>(
mCache,
(foo: string) => `cache:key:${foo}`,
1000 * 60 * 5
);
const rItem = new CacheItem<{ key: string; value: number; }>(
rCache,
(opt: { index: number; }) => `cache:key:${opt.index}`,
1000 * 60 * 5
);
await mItem.set('foo', 123);
const val1 = await mItem.get('foo');
await mItem.del('foo');
await rItem.set({ index: 1 }, { key: '1234' value: 123 });
const val2 = await rItem.get({ index: 1 });
await rItem.del({ index: 1 });
Contributors
Name |
---|
Volodymyr Denshchykov |
License
MIT © Volodymyr Denshchykov