{"library":"redis-dump","title":"Redis Database Dump Tool","description":"The `redis-dump` package provides a utility for exporting data from a Redis database, offering output in two primary formats: a series of Redis commands suitable for direct re-import via `redis-cli`, or a structured JSON representation for programmatic processing. The current stable version, `0.1.10`, was last published in March 2014, indicating that the project is no longer actively maintained. Its core functionality enables users to backup, migrate, or inspect Redis data, differentiating itself by supporting both a command-line interface and a programmatic API for Node.js applications. Due to its age, it predates modern JavaScript module systems and may not be compatible with newer Redis features or Node.js versions, and has an effectively non-existent release cadence.","language":"javascript","status":"abandoned","last_verified":"Wed Apr 22","install":{"commands":["npm install redis-dump"],"cli":{"name":"redis-dump","version":null}},"imports":["const program = require('redis-dump');"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"const redis = require('redis');\nconst { spawn } = require('child_process');\n\nasync function runDump() {\n    const client = redis.createClient({\n        url: process.env.REDIS_URL || `redis://${process.env.REDIS_HOST || '127.0.0.1'}:${process.env.REDIS_PORT || '6379'}`,\n        password: process.env.REDIS_PASSWORD || ''\n    });\n\n    client.on('error', (err) => {\n        console.error('Redis Client Error', err);\n    });\n\n    try {\n        await client.connect();\n\n        // Populate some dummy data for demonstration\n        await client.del('mydb:numberlist', 'mydb:numberset', 'mydb:numvisits');\n        await client.rPush('mydb:numberlist', 'one', 'two', 'three');\n        await client.sAdd('mydb:numberset', 'one', 'two', 'three');\n        await client.set('mydb:numvisits', '34');\n        console.log('Dummy data populated in Redis.');\n\n        // Define common connection arguments for redis-dump CLI\n        const commonDumpArgs = [\n            '-h', process.env.REDIS_HOST || '127.0.0.1',\n            '-p', process.env.REDIS_PORT || '6379',\n            '-a', process.env.REDIS_PASSWORD || '',\n            '-f', 'mydb:*'\n        ];\n\n        // Dump as JSON\n        console.log('\\n--- Dumping as JSON ---');\n        const jsonDumpProcess = spawn('redis-dump', [...commonDumpArgs, '--json', '--pretty']);\n\n        let jsonOutput = '';\n        jsonDumpProcess.stdout.on('data', (data) => { jsonOutput += data.toString(); });\n        jsonDumpProcess.stderr.on('data', (data) => { console.error(`stderr (JSON dump): ${data}`); });\n        await new Promise((resolve, reject) => {\n            jsonDumpProcess.on('close', (code) => {\n                if (code === 0) { console.log('JSON Dump Output:\\n', jsonOutput); resolve(); }\n                else { reject(new Error(`redis-dump JSON process exited with code ${code}`)); }\n            });\n        });\n\n        // Dump as Redis commands\n        console.log('\\n--- Dumping as Redis Commands ---');\n        const commandDumpProcess = spawn('redis-dump', commonDumpArgs);\n\n        let commandOutput = '';\n        commandDumpProcess.stdout.on('data', (data) => { commandOutput += data.toString(); });\n        commandDumpProcess.stderr.on('data', (data) => { console.error(`stderr (Command dump): ${data}`); });\n        await new Promise((resolve, reject) => {\n            commandDumpProcess.on('close', (code) => {\n                if (code === 0) { console.log('Command Dump Output:\\n', commandOutput); resolve(); }\n                else { reject(new Error(`redis-dump Command process exited with code ${code}`)); }\n            });\n        });\n\n    } catch (error) {\n        console.error('An error occurred:', error);\n    } finally {\n        await client.disconnect();\n        console.log('Redis client disconnected.');\n    }\n}\n\nrunDump();\n","lang":"javascript","description":"This example demonstrates how to use `redis-dump` programmatically by spawning it as a child process to export Redis data in both JSON and Redis command formats, first populating some example data using a modern Redis client.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}