自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

數據庫 Redis
Linux 上我們可以從 Github 上下載它的二進制包來使用,選擇適應Docker版本的docker compose,使用Docker info 查看Docker對應的Docker-Compose版本,我的機器對應的是v2.21.0。

今日目標

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

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

  • 主節(jié)點: 可以對Redis實現讀寫操作
  • 從節(jié)點: 只可以對Redis實現讀操作

1.Redis主從集群安裝

1.1. 集群結構

搭建的主從集群結構如圖如下:

圖片圖片

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

IP

PORT

角色

192.168.150.102

6380

master

192.168.150.102

6381

slave

192.168.150.102

6382

slave

因為已經學習過Docker,所以使用Docker技術安裝Rdis主從集群

1.2. Docker-Compose安裝

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

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

docker info

【步驟二】:下載Docker-Compose對應的穩(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í)行權限應用于Docker-Compose二進制文件

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

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

docker-compose version

結果:

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

圖片圖片

如果您覺得本文不錯,歡迎關注,點贊,收藏支持,您的關注是我堅持的動力!

1.3. 準備實例和配置

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

# master
## 創(chuàng)建主節(jié)點的配置文件
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é)點-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é)點-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守護進程啟動時就已經停止了的容器
    command: redis-server /etc/redis/redis.conf --requirepass 123456 --appendonly no # 啟動redis服務并添加密碼為:123456,默認不開啟redis-aof方式持久化配置
    environment:                        # 設置環(huán)境變量,相當于docker run命令中的-e
      TZ: Asia/Shanghai
      LANG: en_US.UTF-8
    volumes:                            # 數據卷掛載路徑設置,將本機目錄映射到容器目錄
      - "/redis-master-slave/master/data:/data"
      - "/redis-master-slave/master/config/redis.conf:/etc/redis/redis.conf"  # `redis.conf`文件內容`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守護進程啟動時就已經停止了的容器
    command: redis-server /etc/redis/redis.conf --requirepass 123456 --appendonly no --slaveof 192.168.150.102 6380 --masterauth 123456 # 啟動redis服務并添加密碼為:123456,默認不開啟redis-aof方式持久化配置,連接并認證master節(jié)點
    environment:                        # 設置環(huán)境變量,相當于docker run命令中的-e
      TZ: Asia/Shanghai
      LANG: en_US.UTF-8
    volumes:                            # 數據卷掛載路徑設置,將本機目錄映射到容器目錄
      - "/redis-master-slave/slave-1/data:/data"
      - "/redis-master-slave/slave-1/config/redis.conf:/etc/redis/redis.conf"  # `redis.conf`文件內容`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守護進程啟動時就已經停止了的容器
    command: redis-server /etc/redis/redis.conf --requirepass 123456 --appendonly no --slaveof 192.168.150.102 6380 --masterauth 123456 # 啟動redis服務并添加密碼為:123456,默認不開啟redis-aof方式持久化配置,連接并認證master節(jié)點
    environment:                        # 設置環(huán)境變量,相當于docker run命令中的-e
      TZ: Asia/Shanghai
      LANG: en_US.UTF-8
    volumes:                            # 數據卷掛載路徑設置,將本機目錄映射到容器目錄
      - "/redis-master-slave/slave-2/data:/data"
      - "/redis-master-slave/slave-2/config/redis.conf:/etc/redis/redis.conf"  # `redis.conf`文件內容`http://download.redis.io/redis-stable/redis.conf`
    ports:                              # 映射端口
      - "6382:6379"

1.4.1. 運行 -- 主從復制模式(主寫從讀)

使用Docker-Compos運行edocker-compose-redis-master-slave.yml進行安裝Redis主從集群

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

1.4.2. 測試

  • 1.進入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. 進入redis-slave-1容器
docker exec -it redis-master redis-cli -h 192.168.150.102 -p 6381 -a 123456
  1. 進入redis-slave-1容器執(zhí)行獲取數據
get name
  1. 進入redis-slave-1容器執(zhí)行寫數據
set name lisi

發(fā)現報錯,因為從節(jié)點只能讀取數據,不能謝數據

圖片圖片

責任編輯:武曉燕 來源: springboot葵花寶典
相關推薦

2023-09-27 06:26:07

2023-09-24 14:32:15

2020-04-14 21:12:42

Redis集群Linux

2022-02-11 08:41:19

WindowsRedis集群

2019-09-03 15:45:31

Redis分片集群

2023-11-13 09:03:10

2023-09-05 09:41:22

服務器Redis

2023-10-26 07:47:53

Redis哨兵集群

2024-03-12 12:57:07

Redis主從架構

2015-07-23 16:38:56

Redis

2022-05-31 08:04:03

Redis高可用集群

2023-12-25 08:02:09

2024-03-07 16:03:56

RedisDocker

2023-05-29 07:39:49

2022-03-19 12:16:49

Redis高并發(fā)系統集群部署

2023-06-10 23:09:40

Redis場景內存

2019-09-16 16:05:13

Redis集群模式

2020-04-21 22:59:50

Redis搭建選舉

2022-02-06 10:58:37

Redis主從模式

2022-06-08 16:55:56

服務器Redis架構
點贊
收藏

51CTO技術棧公眾號