0.16.0 • Published 3 years ago
core.io-cache-redis v0.16.0
core.io Cache Redis
This package provides a module for the core.io library.
Install
$ npm i -S core.io-cache-redisUsage
The CacheClient exposes a tryGet function that takes a key, a fallback function and an options object.
key: Either a string or an object that will be used to create a cache identification key. If key is not found in the cache we callfallbackand store the functions output in cache using key as identifier. Next time we calltryGetwe return the cached value.fallback: Some (expensive) function that we want to cache the outputs of its execution.
Options:
ttldefault(defaultTTL): Time to live for the key after which the key expires.deserializedefault(true): Calldeserializeon the cached valueaddTimestampdefault(true): Add a time-stamp to the cached valuethrowOnErrordefault(false): Iftrueany errors while callingfallbackwill be thrown, else returned in the valueforceCacheMissdefault(false): Function or boolean to check if we want to forcefallbackcall.
result = await cache.tryGet(query, async _ => {
return await service.query(query);
});Key Hashing
We can use strings or objects as the raw source for the cache key. If the raw key is an object will be serialized to a string.
Then the create an md5 hash with the key and prepped the cacheKeyPrefix.
By default the serialize and deserialize functions are mapped to JSON.stringify and JSON.parse respectively.
If our raw key is the following object:
const query = { limit: 100, order: 'DESC', where: { id: 23 } };
let key = cache.hashKey(query);
assert(key === 'cache:1239ecd04b073b8f4615d4077be5e263');License
® License by goliatone