# 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集群
- 其他