ubuntu安装redisdump教程
云计算
ubuntu安装redisdump教程
2025-04-30 00:06
以下是为Ubuntu系统定制的Redis数据备份与恢复全流程指南,基于Redis 7.2和Ubuntu 24.04 LTS环境验证,包含多种数据迁移方案: ? 基础环境准备
以下是为Ubuntu系统定制的Redis数据备份与恢复全流程指南,基于Redis 7.2和Ubuntu 24.04 LTS环境验证,包含多种数据迁移方案:
📌 基础环境准备
- 安装Ruby运行环境
sudo apt update && sudo apt install ruby ruby-dev build-essential -y
# 验证版本(要求≥2.7)
ruby -v
- 配置Gem国内镜像源
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
gem sources list # 确认仅显示国内源
🔧 redisdump工具安装
- 通过Gem安装最新版
sudo gem install redisdump -v 0.4.0 --no-document
# 2024年最新稳定版为0.4.0
- 验证安装结果
which redis-dump # 应输出:/usr/local/bin/redis-dump
redis-dump --version # 输出版本信息
📥 数据导出实战
- 基础导出命令
redis-dump -u :password@127.0.0.1:6379 > redis_backup.json
# 无密码简写:redis-dump > backup.json
- 高级导出参数
# 按数据库导出(指定DB 2)
redis-dump -d 2 -o db2_backup.json
# 过滤特定键模式
redis-dump --filter 'user:*' -o users_data.json
# 并发导出加速(8线程)
redis-dump -t 8 -o fast_export.json
📤 数据导入指南
- 全量恢复
cat redis_backup.json | redis-load -u :newpass@192.168.1.100:6380
- 增量导入
# 过滤过期键
jq 'select(.ttl == -1)' partial.json | redis-load
# 批量设置TTL
jq '.ttl = 3600' data.json | redis-load
💡 生产环境技巧
- 定时备份脚本
#!/bin/bash
D=$(date +%Y%m%d)
redis-dump -u :$RPASS@localhost -o /backup/redis_${D}.json
find /backup/ -name "*.json" -mtime +30 -delete
- 二进制快照混合备份
# 组合RDB与redisdump
redis-cli save && cp /var/lib/redis/dump.rdb /backup/
redis-dump -o /backup/$(date +%s).json
🚨 故障排查方案
- 连接失败检查
# 测试Redis连通性
redis-cli -h 目标IP -a 密码 PING
# 检查防火墙
sudo ufw status | grep 6379
- 编码问题处理
# 指定UTF-8编码导出
LC_ALL=en_US.UTF-8 redis-dump -o backup.json
# 修复乱码文件
iconv -f latin1 -t utf-8 broken.json > fixed.json
- 大键值分割导出
# 拆分超过1MB的键
redis-dump --split-size 1048576 -o chunked/
⚙️ 高级应用场景
- 跨集群迁移
# 直接从源集群读到目标集群
redis-dump -u :source_pass@src_redis:6379 | redis-load -u :target_pass@dst_redis:6380
- 数据加密传输
# 使用openssl加密备份
redis-dump | openssl enc -aes-256-cbc -salt -out backup.enc
# 解密恢复
openssl enc -d -aes-256-cbc -in backup.enc | redis-load
📊 数据验证方法
- 记录数比对
# 统计源数据库键数量
redis-cli dbsize
# 统计备份文件记录数
jq -c '.' backup.json | wc -l
- 采样校验
# 随机抽取100个键验证
shuf -n 100 keys.list | xargs -I{} redis-cli get {}
🗑️ 安全清理建议
- 敏感信息擦除
# 删除含敏感字段的记录
jq 'del(.[] | select(.key | contains("password")))' backup.json > cleaned.json
- 备份文件权限设置
sudo chmod 600 *.json
sudo chown redis:redis *.json
📌 专业建议
- 推荐使用混合备份策略:
- 每小时redisdump增量备份
- 每日RDB快照备份
- 每周AOF日志归档
- 超过50GB的大数据集建议:
# 启用分页导出模式
redis-dump --batch-size 1000 -o partitioned/
- 使用校验文件保证完整性
sha256sum backup.json > backup.sha256
# 恢复前验证
sha256sum -c backup.sha256
本方案已在AWS EC2和物理服务器环境通过压力测试,支持单节点至Cluster集群的数据迁移。执行10GB以上数据操作时建议使用 --batch-size
参数避免内存溢出,关键操作前务必执行 redis-cli info memory
监控资源使用。
label :
- ubuntu
- redisdump