Docker 安裝 Redis與學習資料彙總

Docker 安裝 Redis

Docker 安裝 Redis

安裝 Docker

鏡像加速

參考阿里鏡像中心

下載鏡像

$ docker search redis # 查詢鏡像
$ docker pull redis # 拉取官方的鏡像
$ docker images # 查看一下是否成功

修改 Redis 配置

  • 下載redis.conf,文件 從官網下載

    $ wget http://download.redis.io/redis-stable/redis.conf
    
  • 修改配置

    • port 6379 # 端口默認爲 6379
    • bind 127.0.0.1 #註釋掉這部分,用來限制 redis 只能本地訪問或者設置爲 0.0.0.0
    • protected-mode no #默認 yes 表示開啓保護模式
    • daemonize no # 或者註釋掉 docker 運行不要設置後臺運行與-d 有衝突會閃退
    • dir “/data” #輸入本地redis數據庫存放文件夾
    • dbfilename #默認 dump.rdb 修改 dump-端口.rdb

創建並操作容器

$ docker run  -itd -p 6379:6379 --name redis-master -v $PWD/redis-6379.conf:/data/redis-6379.conf -v $PWD:/data redis redis-server /data/redis-6379.conf
$ docker exec -it redis-master redis-cli -p 6379

主從模式

添加配置文件

$ cp redis-6379.conf redis-6380.conf 
$ vi redis-6380.conf # 修改端口以及dbfilename

創建容器

$ docker run -itd -p 6380:6380 --name redis-slave-0 -v $PWD/redis-6380.conf:/data/redis-6380.conf -v $PWD:/data redis redis-server /data/redis-6380.conf

查看主 Redis IP 信息

$ docker inspect redis-master | grep IPAddress

配置主從關係

$ docker exec -it redis-slave-0 redis-cli -p 6379
$ slaveof 主節點的ip(host) 主節點的端口(port) # slaveof 172.17.0.2 6379

主從模式支持:一主一從結構 一主多從結構 樹狀主從結構

Redis Sentinel 的高可用性-哨兵模式

配置文件

# redis-sentinel-26379.conf
port 26379 # Sentinel節點的端口
daemonize yes # 守護進程
logfile "26379.log" # 日誌文件
dir /data # 工作目錄
sentinel monitor mymaster 172.17.0.2 6379 2
sentinel down-after-milliseconds mymaster 30000 # 單位爲毫秒
sentinel parallel-syncs mymaster 1 # parallel-syncs 就是用來限制在一次故障轉移之後,每次向新的主節點發起復制操作的從節點個數
sentinel failover-timeout mymaster 180000 # 故障轉移超時時間
#sentinel auth-pass <master-name> <password> # Sentinel 監控主節點的密碼
#sentinel notification-script <master-name> <script-path> # 故障轉移觸發
#sentinel client-reconfig-script <master-name> <script-path> # 故障轉移結束後觸發
  • Sentinel節點的默認端口是26379。

  • sentinel monitor mymaster 172.17.0.2 6379 2 配置代表 sentinel-1 節點需要監控172.17.0.2:6379 這個主節點,2 代表判斷主節點失敗至少需要 2 個Sentinel節點同意,mymaster是主節點的別名

詳細的參數說明推薦參考 Redis開發與運維 的第9章 9.2.4 配置優化

創建 sentinel 容器

$ docker run  -itd -p 26379:26379 --name redis-sentinel-1 -v $PWD/redis-sentinel-26379.conf:/data/redis-sentinel-26379.conf -v $PWD:/data redis redis-sentinel /data/redis-sentinel-26379.conf

配置多個 redis-sentinel 依次啓動。配置參數只是 port logfile 需要修改其他保持不變即可

$ docker run  -itd -p 26380:26380 --name redis-sentinel-2 -v $PWD/redis-sentinel-26380.conf:/data/redis-sentinel-26380.conf -v $PWD:/data redis redis-sentinel /data/redis-sentinel-26380.conf

查看狀態

$ docker exec -it redis-sentinel-1 redis-cli  -p 26380 info Sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=172.17.0.2:6379,slaves=2,sentinels=3

更多資料

GitChat 專欄推薦

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章