Redis replication 筆記

「關係數據庫一般會使用一個主服務器(master)向多個從服務器(slave)發送更新,並使用從服務器來處理全部讀請求。Redis也採用了一樣的方法來實現本身的複製特性,並將其用做擴展性能的一種手段」redis

Excerpt From: [美] Josiah L. Carlson. 「Redis實戰.」 iBooks.數據庫

Ubuntu 16.04 安裝 Redis Server

安裝新一點版本的redis 使用redis-server : chris lea這個源ubuntu

$ sudo apt-add-repository ppa:chris-lea/redis-server

安裝服務器

$ sudo apt-get update
$ sudo apt-get install redis-server

能夠ping下 redis-cli ping 返回 Pong 安裝成功性能

測試環境兩臺機器測試

  • 10.211.55.6 (master)spa

  • 10.211.55.7 (slave).net

slaveof 命令和配置項

「但開啓從服務器所必須的選項只有slaveof一個。若是用戶在啓動Redis服務器的時候,指定了一個包含slaveof host port選項的配置文件,那麼Redis服務器將根據該選項給定的IP地址和端口號來鏈接主服務器。對於一個正在運行的Redis服務器,用戶能夠經過發送SLAVEOF no one命令來讓服務器終止複製操做,再也不接受主服務器的數據更新;也能夠經過發送SLAVEOF host port命令來讓服務器開始複製一個新的主服務器。」code

Excerpt From: [美] Josiah L. Carlson. 「Redis實戰.」 iBooks. server

配置很簡單,就兩種方式配置方式

  • 在slave服務器用redis-cli執行slaveof命令

  • 寫在配置文件slaveof host port

配置文件好處重啓配置不失效

10.211.55.7 上執行 命令設置

$ redis-cli
127.0.0.1:6379> SLAVEOF 10.211.55.6 6379
OK

使用info 命令查看Replication部分狀態

slave

# Replication
role:slave
master_host:10.211.55.6
master_port:6379
master_link_status:up

slave已經鏈接上master服務器了

master

role:master
connected_slaves:1
slave0:ip=10.211.55.7,port=6379,state=online,offset=98,lag=1

若是發現沒同步,檢查bind配置

bind 10.211.55.6 127.0.0.1

另外 說是在redis.conf 裏配置

slaveof <masterip> <masterport>

測試

注意

  • 從服務器在進行同步時,會清空本身的全部數據

  • 不支持主主複製,可是從服務器能夠鏈接從服務器複製數據

相關文章
相關標籤/搜索