{"id":44537,"library":"cartodb-redis","title":"CartoDB Redis Client","description":"A Node.js library for interacting with CartoDB metadata stored in Redis. Version 3.0.1 supports Node.js >=12.16.3 and npm >=6.14.4. It provides a straightforward API to access CartoDB-specific Redis structures, handling serialization and connection pooling internally. Unlike generic Redis clients, cartodb-redis knows the exact schema and provides methods like getInfo, set, and del for user, table, and visualization metadata. Maintained by CartoDB with moderate release cadence for compatibility.","status":"active","version":"3.0.1","language":"javascript","source_language":"en","source_url":"git://github.com/cartodb/node-cartodb-redis","tags":["javascript"],"install":[{"cmd":"npm install cartodb-redis","lang":"bash","label":"npm"},{"cmd":"yarn add cartodb-redis","lang":"bash","label":"yarn"},{"cmd":"pnpm add cartodb-redis","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Underlying Redis client for connections and commands","package":"redis","optional":false},{"reason":"Utility library used for object manipulation","package":"underscore","optional":false}],"imports":[{"note":"Package ships a default CommonJS export; use default import in ESM or require directly.","wrong":"const CartoDBRedis = require('cartodb-redis').default","symbol":"default","correct":"import CartoDBRedis from 'cartodb-redis'"},{"note":"Pool is exported as a property of the module, not a named export. In CommonJS, require and destructure.","wrong":"import { Pool } from 'cartodb-redis'","symbol":"Pool","correct":"const Pool = require('cartodb-redis').Pool"},{"note":"In ESM, the default export is the whole module object; access Pool as a property.","wrong":"import { Pool } from 'cartodb-redis'","symbol":"Pool","correct":"import CartoDBRedis from 'cartodb-redis';\nconst Pool = CartoDBRedis.Pool;"}],"quickstart":{"code":"import CartoDBRedis from 'cartodb-redis';\n\nconst redisClient = new CartoDBRedis({\n  host: process.env.REDIS_HOST || 'localhost',\n  port: parseInt(process.env.REDIS_PORT || '6379'),\n  db: parseInt(process.env.REDIS_DB || '5')\n});\n\nasync function getUserInfo(username) {\n  try {\n    const info = await redisClient.getUserInfo(username);\n    console.log('User info:', info);\n  } catch (err) {\n    console.error('Error fetching user info:', err);\n  } finally {\n    redisClient.end();\n  }\n}\n\ngetUserInfo('testuser');","lang":"typescript","description":"Initializes a CartoDB Redis client with environment-configured connection, fetches user metadata, and handles errors."},"warnings":[{"fix":"Always call redisClient.end() after completing operations, or manage pool lifecycle properly.","message":"Calling end() after each operation is required to release connections; failing to do so can exhaust the pool.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use the provided methods (getInfo, setInfo) instead of direct Redis commands.","message":"The library uses a custom serialization format specific to CartoDB; manually inspecting raw Redis keys may lead to incorrect assumptions.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Update calls to pass an object with 'username' property instead of positional string.","message":"Version 2.0 changed the method signature for getUserInfo; now accepts an object instead of separate arguments.","severity":"breaking","affected_versions":">=2.0.0 <3.0.0"}],"env_vars":null,"search_vec":"'12.16.3':19 '3.0.1':16 '6.14.4':22 'access':29 'api':27 'cadenc':72 'cartodb':1,10,31,46,68 'cartodb-redi':45 'cartodb-specif':30 'client':3,44 'compat':74 'connect':38 'del':59 'exact':50 'generic':42 'getinfo':56 'handl':35 'interact':8 'intern':40 'javascript':75 'know':48 'librari':6 'like':55 'maintain':66 'metadata':11,65 'method':54 'moder':70 'node.js':5,18 'npm':21 'pool':39 'provid':24,53 'redi':2,14,33,43,47 'releas':71 'schema':51 'serial':36 'set':57 'specif':32 'store':12 'straightforward':26 'structur':34 'support':17 'tabl':62 'unlik':41 'user':61 'version':15 'visual':64","created_at":"2026-06-07T12:50:37.775198+00:00","updated_at":"2026-06-07T12:50:37.775198+00:00","problems":[{"fix":"Ensure Redis is running and accessible via the configured host and port.","cause":"Redis server is not running or incorrect host/port.","error":"Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED"},{"fix":"Use `const CartoDBRedis = require('cartodb-redis'); const client = new CartoDBRedis(...);`","cause":"Using CommonJS require with destructuring incorrectly.","error":"TypeError: redisClient.getUserInfo is not a function"},{"fix":"Run `npm install underscore` to add the peer dependency.","cause":"Missing underscore dependency when using the library in an environment without automatic resolution.","error":"Error: Cannot find module 'underscore'"}],"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/cartodb/node-cartodb-redis#readme","github":"git://github.com/cartodb/node-cartodb-redis","docs":null,"changelog":null,"pypi":null,"npm":"cartodb-redis","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}}