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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

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

發(fā)布時(shí)間:2023/12/31 数据库 52 coder
生活随笔 收集整理的這篇文章主要介紹了 Docker部署系列之Docker Compose安装Redis三主三从集群 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

總結(jié)/朱季謙

在日常開(kāi)發(fā)或者編程當(dāng)中,經(jīng)常需要用到redis集群,若是按照傳統(tǒng)的方式,一個(gè)機(jī)器一個(gè)機(jī)器搭建,難免過(guò)于繁瑣,故而可以通過(guò)dock er-compose編排方式,快速搭建。我在搭建過(guò)程當(dāng)中,將操作記錄下來(lái),方便以后需要搭建三主三從節(jié)點(diǎn)時(shí),可以基于以前的成功經(jīng)驗(yàn),快速搭建起來(lái)。

一、環(huán)境準(zhǔn)備

準(zhǔn)備三臺(tái)機(jī)器,在每臺(tái)機(jī)器上,計(jì)劃安裝一個(gè)Redis主節(jié)點(diǎn)和一個(gè)Redis從節(jié)點(diǎn)。

機(jī)器 Redis節(jié)點(diǎn) 節(jié)點(diǎn)端口
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

二、文件準(zhǔn)備

2.1、創(chuàng)建Redis節(jié)點(diǎn)目錄

分別在192.168.31.130、192.168.31.131、192.168.31.132機(jī)器上,執(zhí)行以下命令,創(chuàng)建Redis主從節(jié)點(diǎn)文件目錄——

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

2.2、創(chuàng)建節(jié)點(diǎn)配置文件redis.conf

分別在192.168.31.130、192.168.31.131、192.168.31.132機(jī)器上的/opt/docker/redis-cluster/redis-master/與/opt/docker/redis-cluster/redis-slave/目錄下,創(chuàng)建一個(gè)redis.conf文件,文件內(nèi)容包括以下屬性——

port 6379 #指定 Redis 服務(wù)器監(jiān)聽(tīng)的端口號(hào),這是客戶端與 Redis 服務(wù)器進(jìn)行通信的端口。
save 900 1#在給定時(shí)間間隔內(nèi)有多少次寫操作時(shí),Redis 將執(zhí)行自動(dòng)的快照(生成 RDB 文件)。
save 300 10
save 60 10000
dbfilename dump.rdb#指定生成的 RDB 文件的名稱。
dir /data #指定持久化文件的存儲(chǔ)目錄。
appendonly yes #啟用 AOF(Append-Only File)持久化模式。
appendfilename "appendonly.aof" #指定 AOF 文件的名稱。
appendfsync everysec #控制 AOF 緩沖區(qū)的內(nèi)容何時(shí)同步到硬盤。這里的選項(xiàng) everysec 表示每秒同步一次
cluster-enabled yes #啟用 Redis 集群功能。
cluster-config-file nodes.conf #指定保存集群拓?fù)湫畔⒌呐渲梦募?cluster-node-timeout 5000 #設(shè)置節(jié)點(diǎn)間通信的超時(shí)時(shí)間,單位為毫秒。

快捷指令,直接在linux運(yùn)行——

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

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

redis.conf文件里內(nèi)容就是前面設(shè)置的。

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

分別在三臺(tái)機(jī)器的/opt/docker/redis-cluster/目錄下,創(chuàng)建docker-compose.yml文件,內(nèi)容如下:

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" ]

完成后,執(zhí)行指令docker-compose up -d——

執(zhí)行指令docker ps -a查看一下容器是否已經(jīng)正常運(yùn)行,如下現(xiàn)實(shí)證明沒(méi)有問(wèn)題——

四、執(zhí)行指令組建redis集群

4.1、任意一臺(tái)機(jī)器上,執(zhí)行以下指令,進(jìn)入到docker容器當(dāng)中——

docker exec -it redis-master bash #redis-master對(duì)應(yīng)的是docker ps -a查看到的容器名redis-master

4.2、創(chuàng)建集群

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

執(zhí)行完成后,打印日志如下——

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

可以通過(guò)以下指令進(jìn)入到redis客戶端,查看集群情況——

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

然后,執(zhí)行指令cluster info查看集群狀況,顯示cluster_state:ok則表示集群已經(jīng)正常創(chuàng)建。

當(dāng)然,可以進(jìn)一步通過(guò)cluster nodes指令,查看各節(jié)點(diǎn)狀況,已經(jīng)是三主三從的集群狀況了——

以上,就是整個(gè)集群搭建過(guò)程。

若是之前沒(méi)有玩過(guò)Docker的朋友,可以參考我之前的一篇Docker搭建記錄文章《CentOS7安裝Docker遇到的問(wèn)題筆記》

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。