{"_id":"@asafkbalink/cache-manager-ioredis","_rev":"1-accf1d10115f2ab77e24f704b785d9c4","name":"@asafkbalink/cache-manager-ioredis","dist-tags":{"latest":"2.0.0"},"versions":{"2.0.0":{"name":"@asafkbalink/cache-manager-ioredis","author":{"name":"Matthijs Dabroek","email":"dabroek@gmail.com"},"description":"IORedis store for node-cache-manager","version":"2.0.0","license":"MIT","main":"dist/index.js","repository":{"type":"git","url":"git+https://github.com/dabroek/node-cache-manager-ioredis.git"},"scripts":{"prepublish":"npm prune","test":"jest --forceExit","test-cov":"jest --forceExit --coverage && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","build":"rollup -c"},"dependencies":{"ioredis":"^4.14.1"},"devDependencies":{"cache-manager":"^2.11.1","coveralls":"^3.0.9","jest":"^25.1.0","rollup":"^1.31.0"},"engines":{"node":">=6.0.0"},"gitHead":"2c8c5f09da80d1e8838c8c86f8080224f66c611c","bugs":{"url":"https://github.com/dabroek/node-cache-manager-ioredis/issues"},"homepage":"https://github.com/dabroek/node-cache-manager-ioredis#readme","_id":"@asafkbalink/cache-manager-ioredis@2.0.0","_nodeVersion":"12.18.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-fzXo2Hb+qmDmrc5+r8YG8bjgu0JhTg4M10h59IF0P0EGSCE4z/Z81+9nJz4PAFqMvufx/RBm3p6l78XIinQA7g==","shasum":"335119030f84a0ad174071dedfd52340bb8262c6","tarball":"https://registry.npmjs.org/@asafkbalink/cache-manager-ioredis/-/cache-manager-ioredis-2.0.0.tgz","fileCount":10,"unpackedSize":26790,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe5b44CRA9TVsSAnZWagAAh/QP/RAasRPxjX6/yIGmfwMV\nadyNiwFzX/t5mtZ2qJGpjtkZAOiHZXWGH8uf+DDGkl+yF3w+sk2uTQCmGNZt\nwsVRtFm44h+eOw5f+RKG4rp5jCYBo1rgEn/8ejmsOUQTRx4135pG0ewWOh1n\nSd5VC+vEJ4WFXnXcEGjQzsOti+pxW3Sx2QZoUJyl2ziXvjBrUaWTzNOK73gt\nfeB5CZow3hcB4asTc3MGblD9uUifFalI8Va4AMB28ba1Kq99zvEtCVftDvoD\n8LOnLK7M89EHlfEZ2vUvt1sWccJwy0InWWRMoU8pIbVbfMOnJW4ogJtWDdmi\nCs20jniDCRQDXedw91CbDvSMnTXtgx/Ek/qo1oVkCvVGOTaRP3wJScaqWWV6\nti2kcq16VuYjnwX1N2nmXE8Q2K0zoy+edCBwQk9cu4F62yrNM5UEs5CPa5Bw\nqCdwXr5ojwHa+jRH0aLO4xb4tdF5+vLYWPxAhnumOt7zroLKkUlIYE4mD0Wk\nY6iSjvu21vuSkicNAgXmtzjRn6GDdD5/kouGHOP5Z4480DZRgtnrIo4CGi3T\nCrUQgbZM8c0x7j6G9koZUmVnL/gM+gAwoet13O+vuoJhnUfSo1jGxvGlLBDy\nnfqByK31C9SNw1lYPBLPleIvxcxNviBxc2u8qQbW6Ydv6ZU5xtxFDd2IhwZb\nnFD4\r\n=DdJ+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID39/PLKjYkOLiKubdfyhdQuZgHKRwtr74tZGe4x6IBUAiB/bQ3TzkFoIlF4Qpb1mxJ4rOwCQXlHIP5NcxQL3qJPpQ=="}]},"maintainers":[{"name":"asafkbalink","email":"asafk@balink.net"}],"_npmUser":{"name":"asafkbalink","email":"asafk@balink.net"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cache-manager-ioredis_2.0.0_1592114744228_0.1472150503110965"},"_hasShrinkwrap":false}},"time":{"created":"2020-06-14T06:05:44.185Z","2.0.0":"2020-06-14T06:05:44.444Z","modified":"2022-04-04T15:42:18.534Z"},"maintainers":[{"name":"asafkbalink","email":"asafk@balink.net"}],"description":"IORedis store for node-cache-manager","homepage":"https://github.com/dabroek/node-cache-manager-ioredis#readme","repository":{"type":"git","url":"git+https://github.com/dabroek/node-cache-manager-ioredis.git"},"author":{"name":"Matthijs Dabroek","email":"dabroek@gmail.com"},"bugs":{"url":"https://github.com/dabroek/node-cache-manager-ioredis/issues"},"license":"MIT","readme":"[![build status](https://travis-ci.org/dabroek/node-cache-manager-ioredis.svg?branch=master)](https://travis-ci.org/dabroek/node-cache-manager-ioredis)\n[![coverage status](https://coveralls.io/repos/github/dabroek/node-cache-manager-ioredis/badge.svg?branch=master)](https://coveralls.io/github/dabroek/node-cache-manager-ioredis?branch=master)\n[![dependencies status](https://david-dm.org/dabroek/node-cache-manager-ioredis/status.svg)](https://david-dm.org/dabroek/node-cache-manager-ioredis)\n[![npm version](https://badge.fury.io/js/cache-manager-ioredis.svg)](https://badge.fury.io/js/cache-manager-ioredis)\n[![GitHub issues](https://img.shields.io/github/issues/dabroek/node-cache-manager-ioredis.svg)](https://github.com/dabroek/node-cache-manager-ioredis/issues)\n\nIORedis store for node cache manager\n==================================\n\nRedis cache store for [node-cache-manager](https://github.com/BryanDonovan/node-cache-manager). \n\nThis package is a almost identical to [node-cache-manager-redis-store](https://github.com/dabroek/node-cache-manager-redis-store), but uses [`ioredis`](https://github.com/luin/ioredis) instead of [`node_redis`](https://github.com/NodeRedis/node_redis). It aims to provide **the most simple wrapper possible** by just passing the configuration to the underlying [`ioredis`](https://github.com/luin/ioredis) package.\n\nInstallation\n------------\n\n```sh\nnpm install cache-manager-ioredis --save\n```\nor\n```sh\nyarn add cache-manager-ioredis\n```\n\nUsage Examples\n--------------\n\nSee examples below on how to implement the IORedis cache store.\n\n### Single store\n\n```js\nvar cacheManager = require('cache-manager');\nvar redisStore = require('cache-manager-ioredis');\n\nvar redisCache = cacheManager.caching({\n  store: redisStore,\n  host: 'localhost', // default value\n  port: 6379, // default value\n  password: 'XXXXX',\n  db: 0,\n  ttl: 600\n});\n\n// listen for redis connection error event\nvar redisClient = redisCache.store.getClient();\n\nredisClient.on('error', (error) => {\n  // handle error here\n  console.log(error);\n});\n\nvar ttl = 5;\n\nredisCache.set('foo', 'bar', { ttl: ttl }, (err) => {\n  if (err) {\n    throw err;\n  }\n\n  redisCache.get('foo', (err, result) => {\n    console.log(result);\n    // >> 'bar'\n    redisCache.del('foo', (err) => {\n    });\n  });\n});\n\nfunction getUser(id, cb) {\n  setTimeout(() => {\n    console.log(\"Returning user from slow database.\");\n    cb(null, { id: id, name: 'Bob' });\n  }, 100);\n}\n\nvar userId = 123;\nvar key = `user_${userId}`;\n\n// Note: ttl is optional in wrap()\nredisCache.wrap(key, (cb) => {\n  getUser(userId, cb);\n}, { ttl: ttl }, (err, user) => {\n  console.log(user);\n\n  // Second time fetches user from redisCache\n  redisCache\n    .wrap(key, () => getUser(userId))\n    .then(console.log)\n    .catch(err => {\n      // handle error\n    });\n});\n```\n\n### Multi-store\n\n```js\nvar cacheManager = require('cache-manager');\nvar redisStore = require('cache-manager-ioredis');\n\nvar redisCache = cacheManager.caching({ store: redisStore, db: 0, ttl: 600 });\nvar memoryCache = cacheManager.caching({ store: 'memory', max: 100, ttl: 60 });\n\nvar multiCache = cacheManager.multiCaching([memoryCache, redisCache]);\n\nvar userId2 = 456;\nvar key2 = `user_${userId2}`;\n\n// Set value in all caches\nmultiCache.set('foo2', 'bar2', { ttl: ttl }, (err) => {\n  if (err) {\n    throw err;\n  }\n\n  // Fetches from highest priority cache that has the key\n  multiCache.get('foo2', (err, result) => {\n    console.log(result);\n\n    // Delete from all caches\n    multiCache.del('foo2');\n  });\n});\n\n// Note: ttl is optional in wrap\nmultiCache.wrap(key2, (cb) => {\n  getUser(userId2, cb);\n}, (err, user) => {\n  console.log(user);\n\n  // Second time fetches user from memoryCache, since it's highest priority.\n  // If the data expires in the memory cache, the next fetch would pull it from\n  // the 'someOtherCache', and set the data in memory again.\n  multiCache.wrap(key2, (cb) => {\n    getUser(userId2, cb);\n  }, (err, user) => {\n    console.log(user);\n  });\n});\n```\n\n### Use Clustering (eg Amazon elasticache)\n\n```javascript\nvar cacheManager = require('cache-manager');\nvar redisStore = require('cache-manager-ioredis');\n\n// https://github.com/luin/ioredis#cluster\nvar redisCache = cacheManager.caching({\n  store: redisStore,\n  clusterConfig: {\n    nodes: [\n      {\n        port: 6380,\n        host: '127.0.0.1'\n      }, \n      {\n        port: 6381,\n        host: '127.0.0.1'\n      }\n    ],\n    options: {\n      maxRedirections: 16\n    }\n  }\n});\n```\n\nContribution\n------------\n\nWant to help improve this package? We take [pull requests](https://github.com/dabroek/node-cache-manager-ioredis/pulls).\n\n\nLicense\n-------\n\nThe `node-cache-manager-ioredis` is licensed under the MIT license.","readmeFilename":"README.md"}