@vovan.qqq/server.cache
v0.1.2
Published
Server cache package
Readme
@vovan.qqq/server.cache
A server cache package written in Typescript.
Table of Contents
Install
npm i @vovan.qqq/server.cacheAPI 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
