0.16.0 • Published 1 year ago

core.io-cache-redis v0.16.0

Weekly downloads
6
License
MIT
Repository
github
Last release
1 year ago

core.io Cache Redis

This package provides a module for the core.io library.

Install

$ npm i -S core.io-cache-redis

Usage

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 call fallback and store the functions output in cache using key as identifier. Next time we call tryGet we return the cached value.
  • fallback: Some (expensive) function that we want to cache the outputs of its execution.

Options:

  • ttl default(defaultTTL): Time to live for the key after which the key expires.
  • deserialize default(true): Call deserialize on the cached value
  • addTimestamp default(true): Add a time-stamp to the cached value
  • throwOnError default(false): If true any errors while calling fallback will be thrown, else returned in the value
  • forceCacheMiss default(false): Function or boolean to check if we want to force fallback call.
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

0.16.0

1 year ago

0.10.0

2 years ago

0.11.0

2 years ago

0.9.0

2 years ago

0.12.0

2 years ago

0.8.0

2 years ago

0.13.0

2 years ago

0.14.0

2 years ago

0.15.0

2 years ago

0.7.0

2 years ago

0.6.1

2 years ago

0.5.0

2 years ago

0.4.0

2 years ago

0.3.2

3 years ago

0.3.0

3 years ago

0.2.0

3 years ago

0.1.0

3 years ago