@growsari/cache
v0.0.8
Published
layer for using caching services
Downloads
163
Keywords
Readme
cache
cache is the wrapper for caching services like redis, memcache, etc
Installation and Basic Usage
Install the cache package
npm i @growsari/cache
Require or import the package as CacheClient
const CacheClient = require('@growsari/cache')
Before we could use it, the project must have the following environment variables
| ENV | Description | Default Value | Other Value | |---|---|---|---| | CACHE_ADAPTER | cache service to be used | redis | ~ | | CACHE_HOST | cache host | localhost | ~ | | CACHE_PORT | cache port | 6379 | ~ | | CACHE_AUTH_TOKEN | cache password if available | '' | ~ |
Example usage of CacheClient
'use strict'
const CacheClient = require('@growsari/cache')
async function main() {
try {
const cacheClient = await CacheClient()
const stringData = 'exampleString';
const serviceName = 'ms-iam'
const namespace = 'growsari'
const redisKeyForString = cacheClient.generateKey(serviceName, namespace, stringData);
console.log('Redis Key (String):', redisKeyForString);
// Example with object data
const objectData = { userId: 123, action: 'login' };
const redisKeyForObject = cacheClient.generateKey(serviceName, objectData);
console.log('Redis Key (Object):', redisKeyForObject);
// Set a key-value pair
await cacheClient.set(redisKeyForString, 'Alice')
console.log('Set name to Alice')
// Get the value by key
const name = await cacheClient.get(redisKeyForString)
console.log('Retrieved name:', name)
// Check if a key exists
const exists = await cacheClient.exists('name')
console.log('Name exists:', exists)
// Set an expiration time for the key
await cacheClient.expire('name', 60) // Expires in 60 seconds
console.log('Set expiration time for name to 60 seconds')
// Retrieve TTL of the key
const ttl = await cacheClient.ttl('name')
console.log('TTL of name:', ttl)
// Persist the key (remove expiration)
await cacheClient.persist('name')
console.log('Persisted name, removed expiration')
// Delete the key
await cacheClient.del('name')
console.log('Deleted name')
// Check if the key exists after deletion
const existsAfterDeletion = await cacheClient.exists('name')
console.log('Name exists after deletion:', existsAfterDeletion)
// Close the Redis connection
await cacheClient.close()
console.log('Closed Redis connection')
} catch (err) {
console.error('Error:', err)
}
}
// Run the example
main().catch(console.error)
Errors
| Code | Message | | --- | --- | | CACHE-001 | cache not supported |