docker Redis的主從配置
redis是k-v型nosql數據庫,支持字符串(string)、列表(list)、集合(set)、散列(hash)、有序集合(zset:形如member:score的散列集合,其中member為成員,score為成員得分,必須為float型數據)。
綜合使用redis的以上5種數據類型,可以將redis應用於各種場景,比如點贊、投票網站、消息隊列、分布式鎖(使用setnx指令,該指令只有在key不存在的時候,才會執行寫入操作)、文件分發(沒研究過)、日誌記錄等等。
redis支持主從配置(拓展讀性能,主機負責讀取、寫入,從機只負責讀取,主機自動向從機以rdb快照形式同步數據)、持久化配置(支持rdb快照持久化、aof持久化,舊版redis不支持同時配置兩種持久化方式,新版的貌似可以)、發布訂閱(pub、sub)、事務、流水線pipeline(減少客戶端和服務端往返連接次數從而提高性能)、客戶端分片(拓展寫性能)等。
本文主要記錄下redis中的主從配置及持久化操作
下載redis鏡像
鏡像中心
拉取redis鏡像
查看拉取的鏡像
搭建redis集群
運行redis鏡像
首先使用docker啟動3個redis容器服務,分別使用到6379、6380、6381端口
查看運行
配置redis集群
使用如下命令查看容器內網的ip地址等信息
3個redis的內網ip地址為:
進入docker容器內部,查看當前redis角色(主還是從)
可以看到當前3臺redis都是master角色,使用redis-cli命令修改redis-6380、redis-6381的主機為172.17.0.2:6379
查看redis-6379是否已經擁有2個從機:
至此,redis下的主從配置就ok了。
配置Sentinel哨兵
Redis 的 Sentinel 系統用於管理多個 Redis 服務器(instance), 該系統執行以下三個任務:
具體介紹可參考:http://redisdoc.com/topic/sentinel.html
接下來直接進入3臺redis容器內部進行配置
進入根目錄創建sentinel.conf文件
修改文件內容為:
最後,啟動Redis哨兵:
至此,Sentinel哨兵配置完畢。
測試驗證
首先查看哨兵監控情況
然後嘗試關閉主機
再查看剩余2個從機,這裏會自動選舉產生新的主機
然後,我們再次將剛才停止的主機啟動起來,發現啟動後其自動成為從機
至此,redis的主從高可用模式已經全部配置完畢,持久化下次研究了再過來記錄吧,over...
docker Redis的主從配置