{"id":46102,"library":"redis-enhanced","title":"redis-enhanced","description":"A TypeScript-first Redis client built on redis-om that adds advanced persistence management (RDB, AOF) and transaction support with entity versioning. Current version 1.0.1 provides simplified Redis interactions with robust error handling, configurable save strategies, and atomic transaction lifecycle management. It differentiates from raw redis-om by offering a higher-level API for persistence configuration and transaction rollback, and from node-redis by focusing on entity management and persistence patterns for applications needing durable Redis storage.","status":"active","version":"1.0.1","language":"javascript","source_language":"en","source_url":"https://github.com/farzanmanafi/redis-enhanced","tags":["javascript","redis","redis-om","persistence","transaction","typescript"],"install":[{"cmd":"npm install redis-enhanced","lang":"bash","label":"npm"},{"cmd":"yarn add redis-enhanced","lang":"bash","label":"yarn"},{"cmd":"pnpm add redis-enhanced","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Core library providing Redis OM functionality (schema, entity management, querying)","package":"redis-om","optional":false},{"reason":"Redis client driver used for database connectivity; peer dependency of redis-om","package":"redis","optional":false}],"imports":[{"note":"ESM default export not available; named import only. CJS require must access the property.","wrong":"const EnhancedRedisClient = require('redis-enhanced').EnhancedRedisClient","symbol":"EnhancedRedisClient","correct":"import { EnhancedRedisClient } from 'redis-enhanced'"},{"note":"Enum is a named export, not default export.","wrong":"import PersistenceType from 'redis-enhanced'","symbol":"PersistenceType","correct":"import { PersistenceType } from 'redis-enhanced'"},{"note":"TransactionManager is a class exported as a named export. Types are included.","wrong":"","symbol":"TransactionManager","correct":"import { TransactionManager } from 'redis-enhanced'"}],"quickstart":{"code":"import { EnhancedRedisClient, PersistenceType } from 'redis-enhanced';\n\nasync function main() {\n  const client = new EnhancedRedisClient({\n    url: 'redis://localhost:6379',\n    password: process.env.REDIS_PASSWORD ?? '',\n  });\n\n  await client.connect();\n\n  // Configure RDB persistence\n  const persistenceManager = client.getPersistenceManager();\n  await persistenceManager.setPersistence({\n    type: PersistenceType.RDB,\n    rdbOptions: { saveFrequency: 3600 },\n  });\n\n  // Basic transaction\n  const transactionManager = client.getTransactionManager();\n  await transactionManager.beginTransaction();\n  try {\n    const user = await transactionManager.save({ name: 'Alice', email: 'alice@example.com' });\n    console.log('Saved user:', user);\n    await transactionManager.commitTransaction();\n  } catch (err) {\n    await transactionManager.rollbackTransaction();\n  }\n\n  await client.quit();\n}\n\nmain().catch(console.error);","lang":"typescript","description":"Demonstrates connecting to Redis, setting RDB persistence, and performing a transactional save with rollback."},"warnings":[{"fix":"Upgrade Redis server to version 6.0 or higher.","message":"Redis server version must be >= 6.0 for redis-om compatibility","severity":"breaking","affected_versions":">=0.0.0"},{"fix":"Call connect() once and reuse the same client instance.","message":"EnhancedRedisClient instances are not reentrant; do not call connect() multiple times","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Remove password field if using default user; otherwise set username/password in url like `redis://user:pass@localhost:6379`.","message":"The `password` config option is deprecated; use `username` and `password` via ACL or leave empty for default user","severity":"deprecated","affected_versions":">=0.0.0"},{"fix":"Do not modify the __v key directly. Let the library manage versions.","message":"TransactionManager relies on entity versioning (__v field); manually editing that field will break optimistic concurrency","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Ensure you are on the correct redis database before calling flushDb(). Use SELECT or separate client instances for different namespaces.","message":"The `flushDb()` method will flush all keys; it does not support flushing specific namespaces","severity":"breaking","affected_versions":">=0.0.0"}],"env_vars":null,"search_vec":"'1.0.1':30 'add':16 'advanc':17 'aof':21 'api':60 'applic':81 'atom':43 'built':10 'client':9 'configur':39,63 'current':28 'differenti':48 'durabl':83 'enhanc':3 'entiti':26,75 'error':37 'first':7 'focus':73 'handl':38 'higher':58 'higher-level':57 'interact':34 'javascript':86 'level':59 'lifecycl':45 'manag':19,46,76 'need':82 'node':70 'node-redi':69 'offer':55 'om':14,53,90 'pattern':79 'persist':18,62,78,91 'provid':31 'raw':50 'rdb':20 'redi':2,8,13,33,52,71,84,87,89 'redis-enhanc':1 'redis-om':12,51,88 'robust':36 'rollback':66 'save':40 'simplifi':32 'storag':85 'strategi':41 'support':24 'transact':23,44,65,92 'typescript':6,93 'typescript-first':5 'version':27,29","created_at":"2026-06-07T12:58:18.284367+00:00","updated_at":"2026-06-07T12:58:18.284367+00:00","problems":[{"fix":"Use named import: `import { EnhancedRedisClient } from 'redis-enhanced'`","cause":"Attempting to use default import: `import EnhancedRedisClient from 'redis-enhanced'`","error":"TypeError: EnhancedRedisClient is not a constructor"},{"fix":"Start Redis server with `redis-server` or adjust the url configuration.","cause":"Redis server is not running or not accessible","error":"Error: Redis connection refused at localhost:6379"},{"fix":"Await client.connect() before using any manager methods.","cause":"Calling getPersistenceManager() before connect() finishes","error":"TypeError: Cannot read properties of undefined (reading 'getPersistenceManager')"}],"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/farzanmanafi/redis-enhanced#readme","github":"https://github.com/farzanmanafi/redis-enhanced","docs":null,"changelog":null,"pypi":null,"npm":"redis-enhanced","openapi_spec":null,"status_page":null,"smithery":null,"categories":["database"],"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}}