{"id":45598,"library":"node-ts-cache-storage-ioredis","title":"node-ts-cache-storage-ioredis","description":"Redis storage adapter for node-ts-cache using ioredis. Current version 4.4.0. Requires ioredis and node-ts-cache as peer dependencies. The adapter accepts an ioredis instance, not a client name or options object. No breaking changes reported since v1, but requires ESM imports in modern Node.js and TypeScript projects.","status":"active","version":"4.4.0","language":"javascript","source_language":"en","source_url":"https://github.com/havsar/node-ts-cache","tags":["javascript","node","nodejs","cache","typescript","ts","caching","memcache","memory-cache"],"install":[{"cmd":"npm install node-ts-cache-storage-ioredis","lang":"bash","label":"npm"},{"cmd":"yarn add node-ts-cache-storage-ioredis","lang":"bash","label":"yarn"},{"cmd":"pnpm add node-ts-cache-storage-ioredis","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency: core caching library that provides CacheContainer and @Cache decorator","package":"node-ts-cache","optional":false},{"reason":"Peer dependency: Redis client used by the storage adapter","package":"ioredis","optional":false}],"imports":[{"note":"Named export, not default. ESM-only; no CommonJS support.","wrong":"import IoRedisStorage from 'node-ts-cache-storage-ioredis'","symbol":"IoRedisStorage","correct":"import { IoRedisStorage } from 'node-ts-cache-storage-ioredis'"},{"note":"Cache decorator comes from node-ts-cache, not the storage package.","wrong":"import { Cache } from 'node-ts-cache-storage-ioredis'","symbol":"Cache","correct":"import { Cache } from 'node-ts-cache'"},{"note":"CJS require() works but is not recommended for TypeScript projects.","wrong":"const { CacheContainer } = require('node-ts-cache')","symbol":"CacheContainer","correct":"import { CacheContainer } from 'node-ts-cache'"}],"quickstart":{"code":"import { Cache, CacheContainer } from 'node-ts-cache';\nimport { IoRedisStorage } from 'node-ts-cache-storage-ioredis';\nimport IoRedis from 'ioredis';\n\nconst redis = new IoRedis({\n  port: 6379,\n  host: '127.0.0.1',\n  family: 4,\n  password: process.env.REDIS_PASSWORD ?? '',\n  db: 0\n});\n\nconst userCache = new CacheContainer(new IoRedisStorage(redis));\n\nclass UserService {\n  @Cache(userCache, { ttl: 60 })\n  async getUsers(): Promise<string[]> {\n    return ['Alice', 'Bob'];\n  }\n}\n\nconst service = new UserService();\nservice.getUsers().then(users => console.log(users));","lang":"typescript","description":"Creates an ioredis client, wraps it in IoRedisStorage, attaches to CacheContainer, and uses @Cache decorator on a method."},"warnings":[{"fix":"Use only ioredis to create the Redis connection.","message":"IoRedisStorage requires an instance of ioredis, not redis or other Redis clients. Passing a different client type will fail silently or throw connection errors.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use import syntax or dynamic import() in CommonJS projects.","message":"The library is ESM-only from version 4.x onwards. CommonJS require() may not work or may require dynamic import().","severity":"deprecated","affected_versions":">=4.0.0"},{"fix":"Omit password if not required, or use environment variable to conditionally set it.","message":"The 'password' option in ioredis constructor is ignored if the Redis server does not require authentication. Setting it unnecessarily can cause warnings but not errors.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"search_vec":"'4.4.0':19 'accept':32 'adapt':9,31 'break':44 'cach':4,14,26,62,65,69 'chang':45 'client':38 'current':17 'depend':29 'esm':51 'import':52 'instanc':35 'ioredi':6,16,21,34 'javascript':59 'memcach':66 'memori':68 'memory-cach':67 'modern':54 'name':39 'node':2,12,24,60 'node-ts-cach':11,23 'node-ts-cache-storage-ioredi':1 'node.js':55 'nodej':61 'object':42 'option':41 'peer':28 'project':58 'redi':7 'report':46 'requir':20,50 'sinc':47 'storag':5,8 'ts':3,13,25,64 'typescript':57,63 'use':15 'v1':48 'version':18","created_at":"2026-06-07T12:55:48.049314+00:00","updated_at":"2026-06-07T12:55:48.049314+00:00","problems":[{"fix":"Switch to import syntax or use dynamic import: const { IoRedisStorage } = await import('node-ts-cache-storage-ioredis');","cause":"Using CJS require() with ESM-only package (node-ts-cache-storage-ioredis v4+)","error":"TypeError: Class extends value #<Object> is not a constructor or null"},{"fix":"Install the peer dependency: npm install node-ts-cache","cause":"Missing peer dependency node-ts-cache","error":"Error: Cannot find module 'node-ts-cache'"},{"fix":"Ensure Redis is running on the specified host and port, or update ioredis options.","cause":"Redis server not running or wrong host/port","error":"Error: connect ECONNREFUSED 127.0.0.1:6379"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/havsar/node-ts-cache#readme","github":"https://github.com/havsar/node-ts-cache","docs":null,"changelog":null,"pypi":null,"npm":"node-ts-cache-storage-ioredis","openapi_spec":null,"status_page":null,"smithery":null,"categories":["storage"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-07","next_check":"2026-09-05","install_tag":null}}