Docker下redis的主從、持久化配置

Docker下redis的主從、持久化配置

redis是k-v型nosql數據庫,支持字符串(string)、列表(list)、集合(set)、散列(hash)、有序集合(zset:形如member:score的散列集合,其中member爲成員,score爲成員得分,必須爲float型數據)。html

綜合使用redis的以上5種數據類型,能夠將redis應用於各類場景,好比點贊、投票網站、消息隊列、分佈式鎖(使用setnx指令,該指令只有在key不存在的時候,纔會執行寫入操做)、文件分發(沒研究過)、日誌記錄等等。redis

redis支持主從配置(拓展讀性能,主機負責讀取、寫入,從機只負責讀取,主機自動向從機以rdb快照形式同步數據)、持久化配置(支持rdb快照持久化、aof持久化,舊版redis不支持同時配置兩種持久化方式,新版的貌似能夠)、發佈訂閱(pub、sub)、事務、流水線pipeline(減小客戶端和服務端往返鏈接次數從而提升性能)、客戶端分片(拓展寫性能)等。sql

本文主要記錄下redis中的主從配置及持久化操做docker

下載redis鏡像

鏡像中心數據庫

推薦使用國內daocloud鏡像
鏡像地址:daocloud.io/library/

拉取redis鏡像bash

docker pull daocloud.io/library/redis:latest

查看拉取的鏡像服務器

docker images

搭建redis集羣

運行redis鏡像

首先使用docker啓動3個redis容器服務,分別使用到637九、6380、6381端口nosql

docker run --name redis-6379 -p 6379:6379 -d daocloud.io/library/redis
docker run --name redis-6380 -p 6380:6379 -d daocloud.io/library/redis
docker run --name redis-6381 -p 6381:6379 -d daocloud.io/library/redis

查看運行分佈式

docker ps

配置redis集羣

使用以下命令查看容器內網的ip地址等信息性能

docker inspect containerid

3個redis的內網ip地址爲:

redis-6379:172.17.0.2:6379
redis-6380:172.17.0.3:6379
redis-6381:172.17.0.4:6379

進入docker容器內部,查看當前redis角色(主仍是從)

能夠看到當前3臺redis都是master角色,使用redis-cli命令修改redis-6380、redis-6381的主機爲172.17.0.2:6379

SLAVEOF host port // SLAVEOF 172.17.0.2 6379

查看redis-6379是否已經擁有2個從機:

至此,redis下的主從配置就ok了。

配置Sentinel哨兵

Redis 的 Sentinel 系統用於管理多個 Redis 服務器(instance), 該系統執行如下三個任務:

監控(Monitoring): Sentinel 會不斷地檢查你的主服務器和從服務器是否運做正常。
提醒(Notification): 當被監控的某個 Redis 服務器出現問題時, Sentinel 能夠經過 API 向管理員或者其餘應用程序發送通知。
自動故障遷移(Automatic failover): 當一個主服務器不能正常工做時, Sentinel 會開始一次自動故障遷移操做, 它會將失效主服務器的其中一個從服務器升級爲新的主服務器, 並讓失效主服務器的其餘從服務器改成複製新的主服務器; 當客戶端試圖鏈接失效的主服務器時, 集羣也會向客戶端返回新主服務器的地址, 使得集羣可使用新主服務器代替失效服務器。

具體介紹可參考:http://redisdoc.com/topic/sentinel.html

接下來直接進入3臺redis容器內部進行配置

docker exec -ti 容器id /bin/bash

進入根目錄建立sentinel.conf文件

cd / && touch sentinel.conf

修改文件內容爲:

sentinel monitor mymaster 172.17.0.2 6379 1

最後,啓動Redis哨兵:

使用 redis-sentinel /sentinel.conf 啓動Redis哨兵監控
使用 ps –ef |grep redis 命令,能夠看到redis-server和redis-sentinel正在運行

至此,Sentinel哨兵配置完畢。

測試驗證

首先查看哨兵監控狀況

而後嘗試關閉主機

再查看剩餘2個從機,這裏會自動選舉產生新的主機

而後,咱們再次將剛纔中止的主機啓動起來,發現啓動後其自動成爲從機

至此,redis的主從高可用模式已經所有配置完畢,持久化下次研究了再過來記錄吧,over...

相關文章
相關標籤/搜索