1.0.12 • Published 5 years ago

sequelize-redis v1.0.12

Weekly downloads
375
License
MIT
Repository
github
Last release
5 years ago

sequelize-redis

Build Status codecov.io Code Coverage Known Vulnerabilities

A semi-automatic caching wrapper for Sequelize v4 NodeJS framework

Installation

npm install sequelize-redis

requirements

Usage

  1. Init our Sequelize cache manager:
import SequelizeRedis from 'sequelize-redis';
import redis from 'redis';
import bluebird from 'bluebird';

// Let's promisify Redis
bluebird.promisifyAll(redis.RedisClient.prototype);
bluebird.promisifyAll(redis.Multi.prototype);

// Define your redisClient
const redisClient = redis.createClient({ /* Redis configuration comes here */ });

// Let's start
const sequelizeRedis = new SequelizeRedis(redisClient);
  1. Wrap our the Sequelize original model:
// models.User refers to model of sequelize
const User = sequelizeRedis.getModel(models.User, { ttl: 60 * 60 * 24 });

The second argument of getModel is optional:

KeyDescriptionDefault value
ttlDefines cache TTL (seconds)null
  1. Then we can start use the model wrapper:
const userUUID = '75292c75-4c7a-4a11-92ac-57f929f50e23';
const userCacheKey = `user_${userUUID}`;
// We can use the default sequelize methods by adding suffix of "Cached" 
// for example, findbyPkCached: 
const [user, cacheHit] = await User.findbyPkCached(userCacheKey, userUUID);
// We can also use the non cached methods (original methods)
const user = await User.findbyPk(userUUID);

Results of Cached methods (for ex. findbyPkCached) will be array with following arguments: 1. Sequelize response (same as on original method) 2. Cache hit indication (true / false)

Supported Methods: find findOne findAll findAndCount findAndCountAll findbyPk all min max sum count

Cache Invalidation

Just use regular Redis API:

redisClient.del('SampleKey');

Contribution

Feel free to contribute and submit issues.

PR

Please make sure that your code is linted and getting build successfully

Thanks

Inspired by rfink/sequelize-redis-cache/

License

MIT (Idan Gozlan)

1.0.12

5 years ago

1.0.11

5 years ago

1.0.10

5 years ago

1.0.9

5 years ago

1.0.8

6 years ago

1.0.7

6 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago