# Redis主从复制
## 目标
1. 容灾
2. 负载均衡,读写分离
## 特点
1. master/slave结构,master可读写,slave只能读。
2. master宕机,slave不会自动完成切换
3. master宕机后恢复,slave会自动与master再次建立复制关系
## 实现
* 超级简单,在redis.conf里面配置加入
```
slaveof <master节点IP> <master节点端口>
masterauth <密码>
#如果主节点配置了requirepass,这里要与主节点保持一致。
```
重启redis实例
* 其他方式
1. 在用redis-server启动命令后,执行slaveof <masterhost> <masterport>
2. 命令行执行`slaveof <masterhost> <masterport>`
这两种都是动态的指定。
## 验证(使用redis的info命令)
* master实例
```
# Replication
role:master
connected_slaves:1
slave0:ip=<slave实例ip>,port=6379,state=online,offset=183,lag=1
master_repl_offset:197
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:196
```
* slave实例
```
# Replication
role:slave
master_host:<master实例ip>
master_port:6379
master_link_status:up
master_last_io_seconds_ago:7
master_sync_in_progress:0
slave_repl_offset:799
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
```
## 主从拓扑结构
#### 一主一从
当主节点出现故障,从节点提供服务
从节点可以开启AOF,保证数据安全,减轻持久化对主节点造成的压力
问题:但是在重启时因为主节点没有做持久化操作,导致主节点数据为空,导致子节点数据也被清空,所以再重启之前进行 slaveof no one断开与主节点的复制关系。
#### 一主多从
读写分离,适用读较多的场景,可以把读命令发送给从节点来分担主节点的压力。如keys、sort命令这种消耗性能的查询命令,可以交给一台从节点执行,防止对主节点造成阻塞。
问题:在高并发写入时,多个节点数据的同步会造成主节点性能的低下。
#### 树状主从
树形结构,一个节点既可以作为主节点又可以作为从节点。
通过数据复制中间层,数据向下传递,减少了主节点的压力,弥补了一主多从的缺憾。
缺点:占用了更多的服务器资源
- 版权
- 博客主题
- 如何不去做运行3.5G-docker镜像的工程师
- 预备主题
- FastDFS快速入门
- mysql定时创建月表
- SpringMVC-Restful
- Docker生态系统
- The Docker Ecosystem: An Introduction to Common Components
- docker监控指标
- 基于etcd服务发现的overlay跨多宿主机容器网络
- etcd:从应用场景到实现原理的全方位解读
- docker存储驱动详解
- 使用docker/engine-api操作docker
- 提升Docker安全性
- docker安全之用户资源隔离
- marathon
- 开始
- 安装mararhon
- 高可用模式
- 使用marathon
- 应用的部署
- 架构组件
- Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
- Openstack架构解析
- haproxy
- Ubuntu系统安装截图
- mesos官方文档
- 关于译者
- mesos基础
- Mesos架构
- 视频与ppt
- 让mesos跑起来
- 快速入门
- 配置
- Containerizer
- Docker Containerizer
- 监控
- 博客文章集
- 煮饺子与mesos之间妙不可言的关系
- linux运维
- 基础篇
- 进阶篇
- mysql
- Ubuntu14.04安装mysql5.6
- MySQL 5.6 replicate原理与实践
- mysql性能
- redis
- redis安装及基础知识
- redis数据结构
- redis命令
- redis数据持久化
- Redis主从复制
- redis集群
- 其他