1. 什么是Redis的主从复制?
主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,slave以读为主
2. 作用是什么?
- 读写分离,性能提升
- 容灾快速恢复(如果一台slave崩掉了,那么读操作会在其他的slave中进行)
3. 注意
只能有一个主(master),只能一主多从,或者一主一从。
当主机挂了怎么办呢?
可以采用集群
4. 怎么搭建主从复制?
- 创建/myredis文件夹
- 将redis.config配置文件复制到/myredis文件夹中
注意将配置文件中的appendonly关闭
- 配置一主两从,添加三个配置文件
- redis6379.conf
- reids6380.conf
- redis6381.conf
- 三个配置文件中写入内容 (注意该名字和端口号)
| include /myRedis/redis.conf |
| pidfile /var/run/redis_6379.pid |
| port 6479 |
| dbfilename dump6379.rdb |
5.启动三个redis服务
- 查看当前主机运行状况
| 127.0.0.1:6481> info replication |
| |
| role:master |
| connected_slaves:0 |
| master_replid:3cda7b6ffdd201be83639011ea7e77489aca3f44 |
| master_replid2:0000000000000000000000000000000000000000 |
| master_repl_offset:0 |
| second_repl_offset:-1 |
| repl_backlog_active:0 |
| repl_backlog_size:1048576 |
| repl_backlog_first_byte_offset:0 |
| repl_backlog_histlen:0 |
- 在从机上执行 slaveof 主机IP 端口号
| |
| 127.0.0.1:6481> slaveof 127.0.0.1 6479 |
| OK |
| |
| |
| 127.0.0.1:6479> info replication |
| |
| role:master |
| connected_slaves:2 |
| |
- 测试(6479为主机,其他的为从机)
在主机上进行写的操作
| |
| 127.0.0.1:6479> set a a |
| OK |
| |
从机查询
| 127.0.0.1:6380> keys * |
| 1) "a" |
| |
| 127.0.0.1:6481> keys * |
| 1) "a" |
| |
从机上不能执行写的操作
| 127.0.0.1:6481> set a1 a |
| (error) READONLY You can't write against a read only replica. |
| |
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决