日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Docker部署系列之Docker Compose安装Redis三主三从集群

發布時間:2023/12/31 数据库 62 coder
生活随笔 收集整理的這篇文章主要介紹了 Docker部署系列之Docker Compose安装Redis三主三从集群 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

總結/朱季謙

在日常開發或者編程當中,經常需要用到redis集群,若是按照傳統的方式,一個機器一個機器搭建,難免過于繁瑣,故而可以通過dock er-compose編排方式,快速搭建。我在搭建過程當中,將操作記錄下來,方便以后需要搭建三主三從節點時,可以基于以前的成功經驗,快速搭建起來。

一、環境準備

準備三臺機器,在每臺機器上,計劃安裝一個Redis主節點和一個Redis從節點。

機器 Redis節點 節點端口
192.168.31.130 redis-master/redis-slave 6379/6380
192.168.31.131 redis-master/redis-slave 6379/6380
192.168.31.132 redis-master/redis-slave 6379/6380

二、文件準備

2.1、創建Redis節點目錄

分別在192.168.31.130、192.168.31.131、192.168.31.132機器上,執行以下命令,創建Redis主從節點文件目錄——

for dir in redis-master/data redis-slave/data; do mkdir -p "/opt/docker/redis-cluster/$dir";done

2.2、創建節點配置文件redis.conf

分別在192.168.31.130、192.168.31.131、192.168.31.132機器上的/opt/docker/redis-cluster/redis-master/與/opt/docker/redis-cluster/redis-slave/目錄下,創建一個redis.conf文件,文件內容包括以下屬性——

port 6379 #指定 Redis 服務器監聽的端口號,這是客戶端與 Redis 服務器進行通信的端口。
save 900 1#在給定時間間隔內有多少次寫操作時,Redis 將執行自動的快照(生成 RDB 文件)。
save 300 10
save 60 10000
dbfilename dump.rdb#指定生成的 RDB 文件的名稱。
dir /data #指定持久化文件的存儲目錄。
appendonly yes #啟用 AOF(Append-Only File)持久化模式。
appendfilename "appendonly.aof" #指定 AOF 文件的名稱。
appendfsync everysec #控制 AOF 緩沖區的內容何時同步到硬盤。這里的選項 everysec 表示每秒同步一次
cluster-enabled yes #啟用 Redis 集群功能。
cluster-config-file nodes.conf #指定保存集群拓撲信息的配置文件名。
cluster-node-timeout 5000 #設置節點間通信的超時時間,單位為毫秒。

快捷指令,直接在linux運行——

for dir in redis-master redis-slave; do 
 if [ "$dir" == "redis-master" ]; then
    port=6379
  elif [ "$dir" == "redis-slave" ]; then
    port=6380
  fi
echo "port $port 
save 900 1
save 300 10
save 60 10000
dbfilename dump.rdb
dir /data 
appendonly yes 
appendfilename "appendonly.aof" 
appendfsync everysec 
cluster-enabled yes 
cluster-config-file nodes.conf 
cluster-node-timeout 5000" > /opt/docker/redis-cluster/$dir/redis.conf;done

運行完成后,在/opt/docker/redis-cluster/redis-master/以及/opt/docker/redis-cluster/redis-slave/生成一個data目錄和一個redis.conf文件——

redis.conf文件里內容就是前面設置的。

三、編寫docker-compose.yml編排文件

分別在三臺機器的/opt/docker/redis-cluster/目錄下,創建docker-compose.yml文件,內容如下:

version: '3.1'
services:
  redis-master:
    image: redis:5.0.8
    container_name: redis-master
    restart: always
    network_mode: "host" 
    volumes:
    - /opt/docker/redis-cluster/redis-master/data:/data
    - /opt/docker/redis-cluster/redis-master/redis.conf:/usr/local/etc/redis/redis.conf
    command: ["redis-server","/usr/local/etc/redis/redis.conf"]
  redis-slave:
    image: redis:5.0.8
    container_name: redis-slave
    restart: always
    network_mode: "host" 
    volumes:
      - /opt/docker/redis-cluster/redis-slave/data:/data
      - /opt/docker/redis-cluster/redis-slave/redis.conf:/usr/local/etc/redis/redis.conf
    command: [ "redis-server","/usr/local/etc/redis/redis.conf" ]

完成后,執行指令docker-compose up -d——

執行指令docker ps -a查看一下容器是否已經正常運行,如下現實證明沒有問題——

四、執行指令組建redis集群

4.1、任意一臺機器上,執行以下指令,進入到docker容器當中——

docker exec -it redis-master bash #redis-master對應的是docker ps -a查看到的容器名redis-master

4.2、創建集群

redis-cli --cluster create  192.168.31.130:6379  192.168.31.130:6380  192.168.31.131:6379 192.168.31.131:6380 192.168.31.132:6379 192.168.31.132:6380 --cluster-replicas 1

執行完成后,打印日志如下——

執行指令后,會出現提示“Can I set the above configuration? (type 'yes' to accept):”,這里輸入yes,回車。出現以下情況話,就是已經成功創建redis集群了——

可以通過以下指令進入到redis客戶端,查看集群情況——

root@hadoop1:/data# redis-cli -c -h 192.168.31.130 -p 6379

然后,執行指令cluster info查看集群狀況,顯示cluster_state:ok則表示集群已經正常創建。

當然,可以進一步通過cluster nodes指令,查看各節點狀況,已經是三主三從的集群狀況了——

以上,就是整個集群搭建過程。

若是之前沒有玩過Docker的朋友,可以參考我之前的一篇Docker搭建記錄文章《CentOS7安裝Docker遇到的問題筆記》

總結

以上是生活随笔為你收集整理的Docker部署系列之Docker Compose安装Redis三主三从集群的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。