redis主從集群是每個使用redis的小伙伴都必需知道的,那如何在docker中快速配置呢?這篇來教你快速上手,跟著復制完全就能用!!
1. 前置準備
1.1 docker安裝
以防有小伙伴沒預先安裝docker,這里提供安裝步驟
# 配置docker yum源。
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 安裝 最新 docker
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin# 啟動& 開機啟動docker; enable + start 二合一
systemctl enable docker --now# 配置加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
1.2 創建docker network(單機中使用)
docker network create mynet01
2. 單機redis
先從簡單的引人,注意實際生產過程中并不是都在單機上的(一臺機起一個)
在本例子中就使用一主一從來做簡單實現(單機下在同一個網絡中,也就是剛剛創建好的mynet01)
2.1 主機redis
docker run -d -p 6379:6379 \ # 主機端口映射
-v /app/rd1:/bitnami/redis/data \ # 目錄掛載
-e REDIS_REPLICATION_MODE=master \ # 配置環境變量,對應bitnami這個鏡像
-e REDIS_PASSWORD=123456 \
--network mynet01 --name redis01 bitnami/redis
2.1.1 bug – 啟動報錯無訪問權限
啟動后通過docker ps
并沒有看到前面運行的實例,這是由于從內部訪問寫配置文件并不是root用戶,所以需要更改權限(同下)
chmod -R 777 rd1docker restart redis02
2.2 從機redis
從機配置的東西就多了,需要配置好主機的host、端口號、密碼等信息
docker run -d -p 6380:6379 \ # 主機端口映射-v /app/rd2:/bitnami/redis/data \ # 目錄掛載-e REDIS_REPLICATION_MODE=slave \-e REDIS_MASTER_HOST=redis01 \ # 主機的ip-e REDIS_MASTER_PORT_NUMBER=6379 \ # 主機的redis端口-e REDIS_MASTER_PASSWORD=123456 \ # 主機redis的密碼-e REDIS_PASSWORD=123456 \ # 本機redis的密碼 --network mynet01 --name redis02 bitnami/redis
6.1.3 驗證
在從機中輸入如下命令訪問redis
docker exec -it redis02 redis-cli# 進去之后記得密碼
AUTH 123456# 查看主從復制信息
INFO replication
如果成功的話能看到如下信息
3. 多機redis
有了前面單機的引入,多機之前的主從集群搭建其實就是用host來綁定對應機器的ip地址,具體如下
在本例子中還是使用一主一從來搭建主從集群,其中主機的ip是192.168.187.128
具體的ip根據自己申請的服務器確定,如果是本機上開的虛擬機可以ifconfig查看
3.1 主機redis
因為是不同機器無需通過network
docker run -d -p 6379:6379 \
-v /app/rd1:/bitnami/redis/data \
-e REDIS_REPLICATION_MODE=master \
-e REDIS_PASSWORD=123456 --name redis01 bitnami/redis
3.2 從機redis
其實就跟單機的類似,只不過host這里換成主機的ip地址,這樣就可以通過網絡訪問到主機上了
docker run -d -p 6380:6379 \
-v /app/rd2:/bitnami/redis/data \
-e REDIS_REPLICATION_MODE=slave \
-e REDIS_MASTER_HOST=192.168.187.128 \ # 注意這里的host地址為主機的ip地址
-e REDIS_MASTER_PORT_NUMBER=6379 \
-e REDIS_MASTER_PASSWORD=123456 \
-e REDIS_PASSWORD=123456 --name redis02 bitnami/redis
3.3 測試
首先進入主機redis
docker exec -it redis01 redis-cli# 進去之后記得密碼
AUTH 123456# 查看主從復制信息
INFO replication
再進入從機redis
docker exec -it redis02 redis-cli# 進去之后記得密碼
AUTH 123456# 查看主從復制信息
INFO replication
如果成功將會看到如下主從集群信息
如果還不放心,不妨跟我一樣在主機中設置一個鍵值,然后再在從機中獲取對應的key,看看是否是你設置的value😉