Redis 从零到主从复制:一篇保姆级实操教程
Redis 从零到主从复制一篇保姆级实操教程nano 编辑版环境Ubuntu 22.04 Redis 6.x全程使用nano 手工编辑配置文件密码约定YourStrongPassword执行时请替换成你自己的强密码目录nano 必会快捷键安装 Redis修改端口 密码常用命令五大基本类型持久化RDB AOF主从复制开发环境踩坑速查表总结与下一步0. nano 必会快捷键全程只用这 4 个快捷键作用CtrlW查找关键词定位要改的行Ctrl\替换输入旧内容 → 回车 → 新内容 → 回车 → 按A全部替换CtrlO保存CtrlX退出1. 安装 Redisapt-get update apt-get install -y redis-server systemctl enable redis-server systemctl start redis-server systemctl status redis-server # 看到 Active: active (running) 即成功提示若提示wget: command not found先执行apt-get install -y wgetapt 报错就改用apt-get。2. 修改端口 密码nano 版默认 6379 端口、无密码暴露公网非常危险。改配置前先备份cp /etc/redis/redis.conf /etc/redis/redis.conf.bak nano /etc/redis/redis.conf用CtrlW逐项定位、Ctrl\替换共改 3 处关键词改成说明portport 6380端口bindbind 127.0.0.1本机或bind 0.0.0.0远程只本机用保持 127.0.0.1requirepassrequirepass YourStrongPassword若原行带#注释删掉#再改检查并重启测试grep -nE ^(port|requirepass|bind) /etc/redis/redis.conf # 预期port 6380 / requirepass YourStrongPassword / bind 127.0.0.1 systemctl restart redis-server redis-cli -p 6380 -a YourStrongPassword ping # 返回 PONG 即成功注意远程连接绑定了0.0.0.0时记得在云厂商安全组和宝塔防火墙若装了放行 6380 端口的 TCP 入方向。允许外网连接必须用强密码否则等于把服务器钥匙送给黑客。3. 常用命令五大基本类型连接客户端redis-cli -p 6380 -a YourStrongPassword # 出现 127.0.0.1:6380 提示符3.1 String字符串——计数器、缓存SET name zzy # 存 GET name # 取 INCR counter # 自增 EXPIRE name 60 # 60 秒后过期 TTL name # 查看剩余秒数-1 永不过期 DEL name # 删3.2 Hash哈希——存对象HSET user:1 name zzy age 25 city hangzhou # 存对象字段 HGET user:1 name # 取单个字段 HGETALL user:1 # 取全部字段 HDEL user:1 age # 删字段3.3 List列表——消息队列LPUSH mylist a b c # 头部插入 RPUSH mylist d # 尾部插入 LRANGE mylist 0 -1 # 查看全部 LPOP mylist # 头部弹出 LLEN mylist # 长度3.4 Set集合——自动去重SADD myset apple banana apple # 重复自动忽略 SMEMBERS myset # 只有一个 apple SISMEMBER myset apple # 判断是否存在 SREM myset apple # 删成员3.5 Sorted Set有序集合——排行榜ZADD rank 100 zzy 80 tom 95 jerry # 分数 成员 ZREVRANGE rank 0 -1 WITHSCORES # 从大到小排行榜 ZRANGE rank 0 -1 WITHSCORES # 从小到大3.6 通用操作KEYS * # 查看所有 key生产慎用 EXISTS key # 判断存在 DEL key # 删除 FLUSHALL # 清空所有数据极其危险 EXIT # 退出4. 持久化RDB AOF对比RDB 快照AOF 日志原理定时把内存数据拍快照存盘把每条写命令记到日志文件dump.rdbappendonly.aof安全性可能丢最后一次快照后的数据everysec 最多丢 1 秒默认开启关闭怎么选开发环境 RDB 够用生产环境建议两者都开。4.1 开启 AOFnano 版nano /etc/redis/redis.conf关键词改成appendonlyappendonly yes把 no 改 yesappendfsyncappendfsync everysec取消注释即可确认并验证grep -nE ^(save |appendonly|appendfsync|dbfilename) /etc/redis/redis.conf # 预期save 900 1 / save 300 10 / save 60 10000 / appendonly yes / appendfsync everysec / dbfilename dump.rdb systemctl restart redis-server redis-cli -p 6380 -a YourStrongPassword INFO persistence | grep aof_enabled # aof_enabled:1 即 AOF 已开启4.2 实战验证重启数据不丢redis-cli -p 6380 -a YourStrongPassword SET test_persistence hello redis BGSAVE # 触发 RDB 快照 EXIT systemctl restart redis-server redis-cli -p 6380 -a YourStrongPassword GET test_persistence # 返回 hello redis —— 持久化生效5. 主从复制开发环境作用读写分离主写从读、数据备份、高可用基础主挂了切从。开发环境不用买第二台服务器同一台机器跑两个实例即可模拟角色端口说明主节点 Master6380负责读写从节点 Slave6381只读自动同步主节点数据5.1 创建从节点配置并 nano 编辑cp /etc/redis/redis.conf /etc/redis/redis_6381.conf nano /etc/redis/redis_6381.conf改动 1Ctrl\替换以下 4 项按A全部替换原内容改成port 6380port 6381/var/run/redis/redis-server.pid/var/run/redis/redis_6381.pid/var/log/redis/redis-server.log/var/log/redis/redis_6381.logdbfilename dump.rdbdbfilename dump_6381.rdb改动 2再改下面两行为no否则手动启动从节点时不会后台运行、终端会被占住原内容改成daemonize nodaemonize yessupervised systemdsupervised no改动 3光标移到文件末尾追加主从配置replicaof 127.0.0.1 6380 masterauth YourStrongPassword注意两台服务器时把127.0.0.1换成主节点真实 IPmasterauth填主节点的密码与第 2 步requirepass一致。保存退出CtrlO→CtrlX。5.2 启动从节点redis-server /etc/redis/redis_6381.conf ss -tlnp | grep 6381 # 看到 0.0.0.0:6381 即启动成功5.3 验证同步主节点写入redis-cli -p 6380 -a YourStrongPassword SET master_key data from master EXIT从节点读取redis-cli -p 6381 -a YourStrongPassword GET master_key INFO replication EXIT三个成功标志data from master # 数据已同步 role:slave # 角色是从节点 master_link_status:up # 与主节点连接正常回主节点看从机状态redis-cli -p 6380 -a YourStrongPassword INFO replication # role:master # connected_slaves:1 # slave0:ip127.0.0.1,port6381,stateonline,...提示从节点默认只读对它写数据会报READONLY错误——这是正常现象不是 bug。6. 踩坑速查表现象原因 / 解决nano 报 “File is being edited”上个 nano 没退干净回车选Yes强制打开客户端连接10060超时端口没放行检查云厂商安全组 宝塔防火墙入方向外网连不上、本地能连安全组没放行 /bind没改0.0.0.0用ss -tlnp \| grep 端口查监听主从master_link_status:downmasterauth密码写错 / 主节点地址端口写错 / 端口没放行从节点READONLY报错从节点只读属性属正常现象7. 总结与下一步已完成安装配置端口密码→ 五大基本类型增删改查 → RDBAOF 持久化 → 主从复制并验证同步。下一步可以学什么Spring Boot / Django 等框架集成 RedisRedis 事务、发布订阅、Lua 脚本生产环境高可用哨兵Sentinel模式大规模场景Redis Cluster 集群全文完 · 基于 Ubuntu 22.04 Redis 6.x 实测整理