1.0.0 • Published 7 months ago
cache-envelop v1.0.0
Wrapper for working with caching services (Memcached, Redis)
Content
About
Connection configs Connecting Redis
Connecting Memcached
About Services often use Memcached and Redis at the same time. This package is a helper wrapper to make it easier to work with them. It also extends the ability to work with Memcached, by simulating support for data types, such as hash and list, available methods for them:
hashSet(key, field, data, ttl),
hashGet(key, field),
hashDel(key, field, options),
listSet(key, data, ttl, options = {}),
listGet(key, options = {}),
listDel(key, ttl, options = {})
Connection configs
// config/default.js
module.exports = {
redis: {
port: 6379,
host: "127.0.0.1",
username: "redisUser",
password: "redis$password",
db: 0, // Defaults to 0
},
memcached: {
servers: [ '127.0.0.1:11211', '127.0.0.1:11212', '127.0.0.1:11213' ],
options: {
retries: 5,
retry: 5000,
remove:true,
failOverServers:['127.0.0.1:11214', '127.0.0.1:11215']
}
}
};
Connecting Redis
// redisConnect.js
const config = require('config')
const { Redis } = require('cache-envelop');
const redis = new Redis(config.redis).client;
- Supports all possible formats of connection options that it supports npm package ioredis
- All methods and arguments implemented in the npm package ioredis are available
Connecting Memcached
// memcachedConnect.js
const config = require('config')
const { Memcached } = require('cache-envelop');
const memcached = new Memcached(config.memcached);
- Supports all possible formats of connection options that it supports npm package memcached
- Client methods are implemented as asynchronous:
- get(key)
- set(key, data, ttl)
- del(key)
- Implemented simulation of working with hashes and lists:
- hashSet(key, field, data, ttl) — sets or updates a field in a hash stored in Memcached
- hashGet(key, field) — retrieves the entire hash or a specific field from a hash stored in Memcached
- hashDel(key, field, options) — deletes a specific field from a hash or the entire hash if no field is specified
- listSet(key, data, ttl, options = {}) — updates a list stored in a cache key by applying actions such as 'push' or 'unshift', or updating a specific index
- listGet(key, options = {}) — retrieves a list from memcached and optionally allows slicing or retrieving specific indices
- listDel(key, ttl, options = {}) — deletes items from a list stored in the cache based on the given options
1.0.0
7 months ago