av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

Redis主從集群原理講解和Docker-compose安裝Redis主從集群

今日目標(biāo)

掌握Docker-compose安裝Redis主從集群

創(chuàng)新互聯(lián)2013年至今,公司以網(wǎng)站設(shè)計(jì)制作、網(wǎng)站建設(shè)、系統(tǒng)開發(fā)、網(wǎng)絡(luò)推廣、文化傳媒、企業(yè)宣傳、平面廣告設(shè)計(jì)等為主要業(yè)務(wù),適用行業(yè)近百種。服務(wù)企業(yè)客戶上1000+,涉及國內(nèi)多個省份客戶。擁有多年網(wǎng)站建設(shè)開發(fā)經(jīng)驗(yàn)。為企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、創(chuàng)意設(shè)計(jì)、宣傳推廣等服務(wù)。 通過專業(yè)的設(shè)計(jì)、獨(dú)特的風(fēng)格,為不同客戶提供各種風(fēng)格的特色服務(wù)。

單節(jié)點(diǎn)Redis的并發(fā)能力是有上限的,要進(jìn)一步提高Redis的并發(fā)能力,就需要搭建主從集群,實(shí)現(xiàn)讀寫分離

  • 主節(jié)點(diǎn): 可以對Redis實(shí)現(xiàn)讀寫操作
  • 從節(jié)點(diǎn): 只可以對Redis實(shí)現(xiàn)讀操作

1.Redis主從集群安裝

1.1. 集群結(jié)構(gòu)

搭建的主從集群結(jié)構(gòu)如圖如下:

圖片

共包含三個節(jié)點(diǎn),一個主兩個從。這里我們會在同一臺虛擬機(jī)中開啟3個redis實(shí)例,模擬主從集群,信息如下:

IP

PORT

角色

192.168.150.102

6380

master

192.168.150.102

6381

slave

192.168.150.102

6382

slave

因?yàn)橐呀?jīng)學(xué)習(xí)過Docker,所以使用Docker技術(shù)安裝Rdis主從集群

1.2. Docker-Compose安裝

【步驟一】:選擇合適版本的Docker-Compose

Linux 上我們可以從 Github 上下載它的二進(jìn)制包來使用,選擇適應(yīng)Docker版本的docker compose,使用Docker info 查看Docker對應(yīng)的Docker-Compose版本,我的機(jī)器對應(yīng)的是v2.21.0

docker info

【步驟二】:下載Docker-Compose對應(yīng)的穩(wěn)定版本

將Docker-Compose下載后,放在/usr/local/bin/目錄下

curl -L "https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

【步驟三】:將可執(zhí)行權(quán)限應(yīng)用于Docker-Compose二進(jìn)制文件

chmod +x /usr/local/bin/docker-compose

【步驟四】:測試是否安裝成功

docker-compose version

結(jié)果:

[root@www ~]# docker-compose version
Docker Compose version v2.21.0

圖片

如果您覺得本文不錯,歡迎關(guān)注,點(diǎn)贊,收藏支持,您的關(guān)注是我堅(jiān)持的動力!

1.3. 準(zhǔn)備實(shí)例和配置

要在同一臺虛擬機(jī)開啟3個實(shí)例,必須準(zhǔn)備三份不同的配置文件和目錄,配置文件所在目錄也就是工作目錄。確保下面的配置已經(jīng)更改(位置也別錯)

# master
## 創(chuàng)建主節(jié)點(diǎn)的配置文件
mkdir -p /redis-master-slave/master/config /redis-master-slave/master/data
cd /redis-master-slave/master/config/
curl -O -L http://download.redis.io/releases/redis-6.0.20.tar.gz
tar -zxvf redis-6.0.20.tar.gz
cp /redis-master-slave/master/config/redis-6.0.20/redis.conf  /redis-master-slave/master/config/redis.conf
sed -i 's/bind 127.0.0.1/bind 0.0.0.0/' /redis-master-slave/master/config/redis.conf 
# slave-1
## 創(chuàng)建從節(jié)點(diǎn)-1的配置文件
mkdir -p /redis-master-slave/slave-1/config /redis-master-slave/slave-1/data
cd /redis-master-slave/slave-1/config/
cp /redis-master-slave/master/config/redis-6.0.20/redis.conf   /redis-master-slave/slave-1/config/redis.conf
sed -i 's/bind 127.0.0.1/bind 0.0.0.0/' /redis-master-slave/slave-1/config/redis.conf 

# slave-2
## 創(chuàng)建從節(jié)點(diǎn)-2的配置文件
mkdir -p /redis-master-slave/slave-2/config /redis-master-slave/slave-2/data
cd /redis-master-slave/slave-2/config/
cp /redis-master-slave/master/config/redis-6.0.20/redis.conf   /redis-master-slave/slave-2/config/redis.conf
sed -i 's/bind 127.0.0.1/bind 0.0.0.0/' /redis-master-slave/slave-2/config/redis.conf

1.4. docker-compose-redis-master-slave.yml文件的編寫

創(chuàng)建名稱為docker-compose-redis-master-slave.yml用于安裝Redis主從集群的docker-compose文件

version: '3'

services:
  # 主
  master:
    image: redis:6.0.20                  # 鏡像'redis:6.0.20 '
    container_name: redis-master                                                      # 容器名為'redis-master'
    restart: unless-stopped                                                                   # 指定容器退出后的重啟策略為始終重啟,但是不考慮在Docker守護(hù)進(jìn)程啟動時就已經(jīng)停止了的容器
    command: redis-server /etc/redis/redis.conf --requirepass 123456 --appendonly no # 啟動redis服務(wù)并添加密碼為:123456,默認(rèn)不開啟redis-aof方式持久化配置
    environment:                        # 設(shè)置環(huán)境變量,相當(dāng)于docker run命令中的-e
      TZ: Asia/Shanghai
      LANG: en_US.UTF-8
    volumes:                            # 數(shù)據(jù)卷掛載路徑設(shè)置,將本機(jī)目錄映射到容器目錄
      - "/redis-master-slave/master/data:/data"
      - "/redis-master-slave/master/config/redis.conf:/etc/redis/redis.conf"  # `redis.conf`文件內(nèi)容`http://download.redis.io/redis-stable/redis.conf`
    ports:                              # 映射端口
      - "6380:6379"
  # 從1
  slave1:
    image: redis:6.0.20                    # 鏡像'redis:6.0.20 '
    container_name: redis-slave-1                                                    # 容器名為'redis-slave-1'
    restart: unless-stopped                                                                   # 指定容器退出后的重啟策略為始終重啟,但是不考慮在Docker守護(hù)進(jìn)程啟動時就已經(jīng)停止了的容器
    command: redis-server /etc/redis/redis.conf --requirepass 123456 --appendonly no --slaveof 192.168.150.102 6380 --masterauth 123456 # 啟動redis服務(wù)并添加密碼為:123456,默認(rèn)不開啟redis-aof方式持久化配置,連接并認(rèn)證master節(jié)點(diǎn)
    environment:                        # 設(shè)置環(huán)境變量,相當(dāng)于docker run命令中的-e
      TZ: Asia/Shanghai
      LANG: en_US.UTF-8
    volumes:                            # 數(shù)據(jù)卷掛載路徑設(shè)置,將本機(jī)目錄映射到容器目錄
      - "/redis-master-slave/slave-1/data:/data"
      - "/redis-master-slave/slave-1/config/redis.conf:/etc/redis/redis.conf"  # `redis.conf`文件內(nèi)容`http://download.redis.io/redis-stable/redis.conf`
    ports:                              # 映射端口
      - "6381:6379"
  # 從2
  slave2:
    image: redis:6.0.20                   # 鏡像'redis:6.0.20 '
    container_name: redis-slave-2                                                    # 容器名為'redis-slave-2'
    restart: unless-stopped                                                                   # 指定容器退出后的重啟策略為始終重啟,但是不考慮在Docker守護(hù)進(jìn)程啟動時就已經(jīng)停止了的容器
    command: redis-server /etc/redis/redis.conf --requirepass 123456 --appendonly no --slaveof 192.168.150.102 6380 --masterauth 123456 # 啟動redis服務(wù)并添加密碼為:123456,默認(rèn)不開啟redis-aof方式持久化配置,連接并認(rèn)證master節(jié)點(diǎn)
    environment:                        # 設(shè)置環(huán)境變量,相當(dāng)于docker run命令中的-e
      TZ: Asia/Shanghai
      LANG: en_US.UTF-8
    volumes:                            # 數(shù)據(jù)卷掛載路徑設(shè)置,將本機(jī)目錄映射到容器目錄
      - "/redis-master-slave/slave-2/data:/data"
      - "/redis-master-slave/slave-2/config/redis.conf:/etc/redis/redis.conf"  # `redis.conf`文件內(nèi)容`http://download.redis.io/redis-stable/redis.conf`
    ports:                              # 映射端口
      - "6382:6379"

1.4.1. 運(yùn)行 -- 主從復(fù)制模式(主寫從讀)

使用Docker-Compos運(yùn)行edocker-compose-redis-master-slave.yml進(jìn)行安裝Redis主從集群

docker-compose -f docker-compose-redis-master-slave.yml -p redis up -d

1.4.2. 測試

  • 1.進(jìn)入redis-master容器
docker exec -it redis-master redis-cli -h 192.168.150.102 -p 6380 -a 123456
  • 2.查看集群狀態(tài)
info replication

圖片

  • 3.在redis-master容器執(zhí)行
set name zhangsan
get name

圖片

  1. 進(jìn)入redis-slave-1容器
docker exec -it redis-master redis-cli -h 192.168.150.102 -p 6381 -a 123456
  1. 進(jìn)入redis-slave-1容器執(zhí)行獲取數(shù)據(jù)
get name
  1. 進(jìn)入redis-slave-1容器執(zhí)行寫數(shù)據(jù)
set name lisi

發(fā)現(xiàn)報錯,因?yàn)閺墓?jié)點(diǎn)只能讀取數(shù)據(jù),不能謝數(shù)據(jù)

圖片


本文標(biāo)題:Redis主從集群原理講解和Docker-compose安裝Redis主從集群
文章出自:http://uogjgqi.cn/article/dpijphc.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流