Docker--利用dockerfile搭建mysql主從集群和redis集群
搭建mysql主從集群
mysql主從同步的原理
==MySQL主從同步(Replication)是一種實(shí)現(xiàn)數(shù)據(jù)冗余和高可用性的技術(shù),通過(guò)將主數(shù)據(jù)庫(kù)(Master)的變更操作同步到一個(gè)或多個(gè)從數(shù)據(jù)庫(kù)(Slave),實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)或準(zhǔn)實(shí)時(shí)復(fù)制==。
為什么要用主從分離?
?讀寫(xiě)分離,提高性能:主庫(kù)負(fù)責(zé)寫(xiě),從庫(kù)負(fù)責(zé)讀
?數(shù)據(jù)實(shí)時(shí)備份:主庫(kù)的數(shù)據(jù)實(shí)時(shí)存儲(chǔ)到從庫(kù)
?高可用HA:當(dāng)有一個(gè)節(jié)點(diǎn)發(fā)生故障時(shí),可以隨時(shí)切換
核心流程
主庫(kù)記錄變更日志(Binary Log)
? 主庫(kù)將所有數(shù)據(jù)變更操作(如INSERT、UPDATE、DELETE)記錄到二進(jìn)制日志(Binary Log)中。
? Binary Log是二進(jìn)制格式的文件,記錄了每個(gè)事務(wù)的SQL語(yǔ)句或行級(jí)變更。
從庫(kù)讀取主庫(kù)的日志
? 從庫(kù)通過(guò)I/O線(xiàn)程連接到主庫(kù),并請(qǐng)求讀取Binary Log。
? 主庫(kù)的I/O線(xiàn)程將Binary Log的內(nèi)容發(fā)送給從庫(kù)。
從庫(kù)重放日志(Relay Log)
? 從庫(kù)將接收到的Binary Log寫(xiě)入本地的中繼日志(Relay Log)。
? 從庫(kù)的SQL線(xiàn)程讀取Relay Log,并按照順序執(zhí)行其中的SQL語(yǔ)句,從而實(shí)現(xiàn)數(shù)據(jù)同步。
數(shù)據(jù)一致性保障
? 主庫(kù)和從庫(kù)通過(guò)日志的順序執(zhí)行保證數(shù)據(jù)一致性。
? 異步復(fù)制模式下,從庫(kù)可能稍有延遲;半同步復(fù)制模式下,主庫(kù)會(huì)等待至少一個(gè)從庫(kù)確認(rèn)接收日志。
主從分布架構(gòu)圖
組件 | 作用 |
Binary Log | 主庫(kù)記錄所有數(shù)據(jù)變更的日志,是主從同步的核心。 |
I/O線(xiàn)程 | 從庫(kù)的線(xiàn)程,負(fù)責(zé)從主庫(kù)獲取Binary Log并寫(xiě)入Relay Log。 |
SQL線(xiàn)程 | 從庫(kù)的線(xiàn)程,負(fù)責(zé)讀取Relay Log并執(zhí)行其中的SQL語(yǔ)句。 |
Relay Log | 從庫(kù)本地存儲(chǔ)主庫(kù)Binary Log的中間日志,用于SQL線(xiàn)程重放。 |
==當(dāng)主節(jié)點(diǎn)mysql接收到數(shù)據(jù)的時(shí)候,向binlog寫(xiě)入事務(wù),binlog通過(guò)多線(xiàn)程的讀取,發(fā)送到從節(jié)點(diǎn),從節(jié)點(diǎn)先由IO線(xiàn)程接收,然后再寫(xiě)入laylog中,之后讓laolog線(xiàn)程進(jìn)行讀取,最后放入到從節(jié)點(diǎn)的mysql中==
主從同步的方式
異步復(fù)制(Asynchronous Replication)
主庫(kù)提交事務(wù)后立即返回,不等待從庫(kù)確認(rèn)。
? 優(yōu)點(diǎn):性能高,延遲低。
? 缺點(diǎn):從庫(kù)可能滯后,數(shù)據(jù)一致性較差。
半同步復(fù)制(Semi-Synchronous Replication)
==主庫(kù)提交事務(wù)后,至少等待一個(gè)從庫(kù)確認(rèn)接收日志==。
? 優(yōu)點(diǎn):數(shù)據(jù)一致性更好。
? 缺點(diǎn):性能略有下降。
全同步復(fù)制(Synchronous Replication)
==主庫(kù)提交事務(wù)后,等待所有從庫(kù)確認(rèn)接收日志==。
? 優(yōu)點(diǎn):數(shù)據(jù)一致性更好。
? 缺點(diǎn):性能較低。
增強(qiáng)半同步復(fù)制 (Rising-Semi-Synchronous Replication)
==對(duì)半同步復(fù)制做的一個(gè)改進(jìn),原理上幾乎是一樣的,主要是解決幻讀的問(wèn)題==.
? 優(yōu)點(diǎn):數(shù)據(jù)一致性更好,解決幻讀問(wèn)題
? 缺點(diǎn):性能略有下降
主要配置
1.主庫(kù)配置
啟用Binary Log:
[mysqld] log-bin=mysql-bin server-id=1 # 唯一標(biāo)識(shí)符
創(chuàng)建同步用戶(hù)(供從庫(kù)連接):
CREATE USER'repl'@'%'IDENTIFIED BY'password'; GRANT REPLICATION SLAVE ON *.* TO'repl'@'%';
2.從庫(kù)配置
指定主庫(kù)信息:
CHANGE MASTER TO MASTER_HOST='master_host', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=120;
啟動(dòng)同步:
START SLAVE;
3.驗(yàn)證同步狀態(tài)
檢查從庫(kù)狀態(tài):
SHOW SLAVE STATUSG;
實(shí)戰(zhàn)
創(chuàng)建對(duì)應(yīng)目錄在這里插入圖片描述
編輯Master目錄下的Dockerfile:
FROM mysql:5.7.36 RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
FROM mysql:5.7.36:這一行指定了Docker 鏡像的基礎(chǔ)鏡像。
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime:
? RUN 是 Dockerfile 中的一個(gè)指令,表示在構(gòu)建鏡像時(shí)運(yùn)行指定的命令。
? ln -sf 是創(chuàng)建符號(hào)鏈接(symbolic link)的命令:
? -s 表示創(chuàng)建符號(hào)鏈接(軟鏈接)。
? -f 表示如果目標(biāo)文件已存在,則強(qiáng)制覆蓋。
? /usr/share/zoneinfo/Asia/Shanghai 是系統(tǒng)中的時(shí)區(qū)文件,表示中國(guó)上海時(shí)區(qū)(東八區(qū))。
? /etc/localtime 是 Linux 系統(tǒng)中表示當(dāng)前容器時(shí)區(qū)的文件。
這一行的作用是將 /etc/localtime 鏈接到 /usr/share/zoneinfo/Asia/Shanghai,從而將容器的時(shí)區(qū)設(shè)置為上海時(shí)區(qū)(UTC+8)。
編輯slave目錄下的Dockerfile:
FROM mysql:5.7.36 RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime COPY ./slave/slave.sql /docker-entrypoint-initdb.d
編輯slave.sql
change master to master_host='mysql-master', master_user='root',master_password='root',master_port=3306; start slave;
CHANGE MASTER TO語(yǔ)句:用于配置從庫(kù)連接主庫(kù)的相關(guān)信息。
參數(shù)說(shuō)明:
? master_host=‘mysql-master’:
指定主庫(kù)的主機(jī)名或 IP 地址,這里的主庫(kù)名是 mysql-master。
? master_user=‘root’:
指定用于從庫(kù)連接主庫(kù)的用戶(hù)名,這里是 root。
? master_password=‘root’:
指定用于從庫(kù)連接主庫(kù)的密碼,這里是 root。
? master_port=3306:
指定主庫(kù)的端口號(hào),這里是默認(rèn)的 MySQL 端口 3306。
? 作用:
這部分語(yǔ)句告訴從庫(kù)如何連接到主庫(kù),包括主庫(kù)地址、用戶(hù)名、密碼和端口號(hào)
START SLAVE語(yǔ)句:
? 用于啟動(dòng)從庫(kù)的復(fù)制進(jìn)程。
? 在執(zhí)行 ==CHANGE MASTER TO== 配置后,從庫(kù)需要執(zhí)行 START SLAVE; ==才能開(kāi)始從主庫(kù)拉取數(shù)據(jù)并同步==
在主目錄mysqlcluster下創(chuàng)建docker-compose.yml文件進(jìn)行編輯:
name: mysqlcluster services: mysql-master: build: context: ./ dockerfile: ./master/Dockerfile image: mysqlmaster:1.0 restart: always container_name: mysql-master volumes: - ./mastervarlib:/var/lib/mysql ports: -8080:3306 environment: MYSQL_ROOT_PASSWORD: root privileged:true command: ['--server-id=1', '--log-bin=master-bin', '--binlog-ignore-db=mysql', '--binlog_cache_size=256M', '--binlog_format=mixed', '--lower_case_table_names=1', '--character-set-server=utf8', '--collation-server=utf8_general_ci'] mysql-slave: build: context: ./ dockerfile: ./slave/Dockerfile image: mysqlslave:1.0 restart: always container_name: mysql-slave volumes: - ./slavevarlib:/var/lib/mysql ports: -8081:3306 environment: MYSQL_ROOT_PASSWORD: root privileged:true command: ['--server-id=2', '--relay_log=slave-relay', '--lower_case_table_names=1', '--character-set-server=utf8', '--collation-server=utf8_general_ci'] depends_on: - mysql-master mysql-slave2: build: context: ./ dockerfile: ./slave/Dockerfile image: mysqlslave:1.0 restart: always container_name: mysql-slave2 volumes: - ./slavevarlib2:/var/lib/mysql ports: -8082:3306 environment: MYSQL_ROOT_PASSWORD: root privileged:true command: ['--server-id=3', '--relay_log=slave-relay', '--lower_case_table_names=1', '--character-set-server=utf8', '--collation-server=utf8_general_ci'] depends_on: - mysql-master
mysql-master:
?restart:指定容器的重啟策略。
always 表示無(wú)論容器因何種原因退出,Docker 都會(huì)嘗試重新啟動(dòng)它。
?volume:用于將主機(jī)目錄掛載到容器中
./mastervarlib是主機(jī)上的目錄,/var/lib/mysql是容器中 MySQL 默認(rèn)的數(shù)據(jù)存儲(chǔ)路徑。
作用:將 MySQL 的數(shù)據(jù)存儲(chǔ)在主機(jī)上,確保容器重啟或刪除后數(shù)據(jù)不會(huì)丟失。
?envirnment:設(shè)置環(huán)境變量
MYSQL_ROOT_PASSWORD: root 指定 MySQL 的 root 用戶(hù)密碼為 root。
privileged:設(shè)置容器以特權(quán)模式運(yùn)行
?command:
設(shè)置 MySQL 服務(wù)器的唯一 ID,主從復(fù)制中必須指定,且每個(gè)服務(wù)器的 ID 必須唯一
啟用二進(jìn)制日志(Binary Log),日志文件前綴為 master-bin,記錄主庫(kù)的寫(xiě)操作
指定忽略mysql系統(tǒng)數(shù)據(jù)庫(kù)的二進(jìn)制日志記錄
設(shè)置二進(jìn)制日志緩存的大小為256MB
設(shè)置二進(jìn)制日志的格式為mixed
設(shè)置表名不區(qū)分大小寫(xiě)
設(shè)置服務(wù)器的默認(rèn)字符集為utf8
設(shè)置服務(wù)器的默認(rèn)排序規(guī)則為utf8_general_ci
mysql-slave1:
?depends-on:指定服務(wù)之間的依賴(lài)關(guān)系
mysql-slave 服務(wù)依賴(lài)于 mysql-master 服務(wù)
確保在啟動(dòng) mysql-slave 之前,mysql-master 服務(wù)已經(jīng)啟動(dòng)
創(chuàng)建出鏡像并創(chuàng)建啟動(dòng)對(duì)應(yīng)的容器:
docker compose build docker compose up -d
查看對(duì)應(yīng)狀態(tài)
docker ps

運(yùn)行主數(shù)據(jù)庫(kù)查看運(yùn)轉(zhuǎn)
dockerexec-it mysql-master bash
連上主庫(kù),查看數(shù)據(jù)庫(kù)可以看到運(yùn)行正常
mysql -u root -p

連接上從庫(kù),通過(guò)命令查看
SHOW MASTER STATUSG SHOW SLAVE STATUSG

主庫(kù)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)
create databasetest;

從庫(kù)上查看,可以看到也有了對(duì)應(yīng)的test數(shù)據(jù)庫(kù):

主庫(kù)上創(chuàng)建表,插入數(shù)據(jù):
mysql> usetest; Database changed mysql> create tableusers(sno int,sname varchar(20)); Query OK, 0 rows affected (0.03 sec) mysql> insert into usersvalues (1,'xixi'); Query OK, 1 row affected (0.02 sec) mysql> insert into usersvalues (2,'haha'); Query OK, 1 row affected (0.01 sec)
在從表上查看
mysql> usetest; Reading table informationforcompletion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> show tables; +----------------+ | Tables_in_test | +----------------+ |users | +----------------+ 1 rowinset(0.00 sec) mysql>select* fromusers; +------+-------+ | sno | sname | +------+-------+ | 1 | xixi | | 2 | haha | +------+-------+ 2 rowsinset(0.00 sec)
至此完成了mysql主從集群的部署;
docker compose down
搭建Redis集群
==Redis 集群是 Redis 提供的一種分布式解決方案,旨在通過(guò)將數(shù)據(jù)分布到多個(gè)節(jié)點(diǎn)上來(lái)實(shí)現(xiàn)水平擴(kuò)展和高可用性==。它解決了單機(jī) Redis 在存儲(chǔ)容量、讀寫(xiě)性能和容錯(cuò)能力上的限制,適用于大規(guī)模、高并發(fā)的應(yīng)用場(chǎng)景。
核心特性
數(shù)據(jù)分片(Sharding)
? Redis 集群將數(shù)據(jù)分散到多個(gè)節(jié)點(diǎn)上,每個(gè)節(jié)點(diǎn)負(fù)責(zé)一部分?jǐn)?shù)據(jù)。
? 數(shù)據(jù)分片基于哈希槽(Hash Slot),共有 16384 個(gè)哈希槽,每個(gè)鍵通過(guò)哈希算法映射到一個(gè)哈希槽,再分配到具體節(jié)點(diǎn)。
高可用性
? 每個(gè)主節(jié)點(diǎn)(Master)可以有多個(gè)從節(jié)點(diǎn)(Slave)。
? 當(dāng)主節(jié)點(diǎn)故障時(shí),集群會(huì)自動(dòng)將從節(jié)點(diǎn)提升為主節(jié)點(diǎn)(故障轉(zhuǎn)移),確保服務(wù)可用。
水平擴(kuò)展
? 可以通過(guò)增加節(jié)點(diǎn)來(lái)擴(kuò)展集群的存儲(chǔ)容量和性能。
? 集群支持動(dòng)態(tài)添加或移除節(jié)點(diǎn),無(wú)需停機(jī)。
無(wú)中心架構(gòu)
?Redis集群沒(méi)有中心節(jié)點(diǎn),所有節(jié)點(diǎn)平等,避免了單點(diǎn)故障。
下載源碼壓縮包
首先,我們要去官網(wǎng),找到源碼的下載鏈接
redis-7.0.15 版本的鏈接
組成
?主節(jié)點(diǎn)(Master):負(fù)責(zé)處理讀寫(xiě)請(qǐng)求和存儲(chǔ)數(shù)據(jù)。
?從節(jié)點(diǎn)(Slave):復(fù)制主節(jié)點(diǎn)的數(shù)據(jù),用于故障轉(zhuǎn)移和只讀請(qǐng)求。
?哈希槽(Hash Slot):數(shù)據(jù)分片的基本單位,共有 16384 個(gè)。
準(zhǔn)備目錄
mkdir/data/ahri/dockerfile/rediscluster/redis
設(shè)置redis.conf
==在redis目錄下創(chuàng)建一個(gè)redis.conf進(jìn)行配置==
#表示前臺(tái)運(yùn)行 daemonize no #端口 port 6379 #持久化 dir/data/redis #啟用集群 cluster-enabledyes #集群參數(shù)配置 cluster-config-file nodes.conf #集群超時(shí)時(shí)間 cluster-node-timeout 5000 #密碼配置 requirepass 123456 #主節(jié)點(diǎn)密碼配置 masterauth 123456 #表示遠(yuǎn)端可以連接 bind* -::*
編輯 Dockefile
==在redis目錄下創(chuàng)建Dockerfile文件進(jìn)行編輯==
注:centos:7 已經(jīng)停止維護(hù)了,所以這里使用了ubuntu
# 第一階段:構(gòu)建階段 FROM ubuntu:22.04 AS buildstage # 更新包列表并安裝必要的構(gòu)建工具和依賴(lài) RUN apt-get update && apt-get install -y build-essential wget gcc g++ make &&rm-rf /var/lib/apt/lists/* # 下載 Redis 源碼和配置文件 #wget https://download.redis.io/releases/redis-7.0.15.tar.gz ADD redis-7.0.15.tar.gz / ADD redis.conf /redis/ # 切換到 Redis 源碼目錄并編譯 WORKDIR /redis-7.0.15 RUN make # 將 Redis 可執(zhí)行文件移動(dòng)到指定目錄 RUNmv/redis-7.0.15/src/redis-server /redis/ &&mv/redis-7.0.15/src/redis-cli /redis/ ENTRYPOINT ["/redis/redis-server","/redis/redis.conf"] # 第二階段:運(yùn)行階段 FROM ubuntu:22.04 RUNmkdir-p /data/redis &&mkdir-p /redis COPY --from=buildstage /redis /redis EXPOSE 6379 ENTRYPOINT ["/redis/redis-server","/redis/redis.conf"]
測(cè)試
==通過(guò)docker build創(chuàng)建鏡像進(jìn)行測(cè)試==
docker build -t myredis:v1.0 .
嘗試啟動(dòng)一個(gè)容器進(jìn)行測(cè)試
docker run -d --name myredis --rmmyredis:1.0 416541b280d91f04e80c7df864ed097d5471b26bf93a5c82b090d458402217f9

測(cè)試成功,釋放資源
docker stop myredis
編寫(xiě)Docker-compose.yml
name: rediscluster services: redis01: image: myredis:1.0 build: ./redis ports: - 6379:6379 container_name: redis01 healthcheck: test: /redis/redis-cli ping interval: 10s timeout: 5s retries: 10 redis02: image: myredis:1.0 container_name: redis02 healthcheck: test: /redis/redis-cli ping interval: 10s timeout: 5s retries: 10 redis03: image: myredis:1.0 container_name: redis03 healthcheck: test: /redis/redis-cli ping interval: 10s timeout: 5s retries: 10 redis04: image: myredis:1.0 container_name: redis04 healthcheck: test: /redis/redis-cli ping interval: 10s timeout: 5s retries: 10 redis05: image: myredis:1.0 container_name: redis05 healthcheck: test: /redis/redis-cli ping interval: 10s timeout: 5s retries: 10 redis06: image: myredis:1.0 container_name: redis06 healthcheck: test: /redis/redis-cli ping interval: 10s timeout: 5s retries: 10 redis07: image: myredis:1.0 container_name: redis07 entrypoint: ["/redis/redis-cli", "--cluster", "create", "redis01:6379", "redis02:6379", "redis03:6379", "redis04:6379", "redis05:6379", "redis06:6379", "--cluster-replicas", "1", "-a", "123456", "--cluster-yes"] depends_on: redis01: condition: service_healthy redis02: condition: service_healthy redis03: condition: service_healthy redis04: condition: service_healthy redis05: condition: service_healthy redis06: condition: service_healthy
測(cè)試
==通過(guò)下面命令檢查配置文件是否書(shū)寫(xiě)格式錯(cuò)誤==
docker compose config
對(duì) 容器進(jìn)行啟動(dòng)
docker compose up -d查看容器的狀態(tài)

查看07日志是否創(chuàng)建成功
root@VM-8-12-ubuntu:/data/ahri/dockerfile/rediscluster# docker logs -f redis07 Warning: Using a password with'-a'or'-u'option on thecommandline interface may not be safe. >>> Performinghashslots allocation on 6 nodes... Master[0] -> Slots 0 - 5460 Master[1] -> Slots 5461 - 10922 Master[2] -> Slots 10923 - 16383 Adding replica redis05:6379 to redis01:6379 Adding replica redis06:6379 to redis02:6379 Adding replica redis04:6379 to redis03:6379 M: 148bf218eac4b30786ef89e5c5cc1bf4facdf4be redis01:6379 slots:[0-5460] (5461 slots) master M: 5964d6968e8527be920f1d60aad8e549ac1c327a redis02:6379 slots:[5461-10922] (5462 slots) master M: 4a33cf88ed2334e78fe468c35446a2a8bd14f805 redis03:6379 slots:[10923-16383] (5461 slots) master S: 4ee8406f204b7ee8778a40f7d6ec979cc4f9bfff redis04:6379 replicates 4a33cf88ed2334e78fe468c35446a2a8bd14f805 S: fb59eccda63bd4bb8d33526262612e1ab694da02 redis05:6379 replicates 148bf218eac4b30786ef89e5c5cc1bf4facdf4be S: 8b7b54ee2f4c7a327e1e954db379a519aa7e68b8 redis06:6379 replicates 5964d6968e8527be920f1d60aad8e549ac1c327a >>> Nodes configuration updated >>> Assign a different config epoch to each node >>> Sending CLUSTER MEET messages tojointhe cluster Waitingforthe cluster tojoin . >>> Performing Cluster Check (using node redis01:6379) M: 148bf218eac4b30786ef89e5c5cc1bf4facdf4be redis01:6379 slots:[0-5460] (5461 slots) master 1 additional replica(s) M: 4a33cf88ed2334e78fe468c35446a2a8bd14f805 172.19.0.5:6379 slots:[10923-16383] (5461 slots) master 1 additional replica(s) S: 4ee8406f204b7ee8778a40f7d6ec979cc4f9bfff 172.19.0.2:6379 slots: (0 slots) slave replicates 4a33cf88ed2334e78fe468c35446a2a8bd14f805 S: fb59eccda63bd4bb8d33526262612e1ab694da02 172.19.0.7:6379 slots: (0 slots) slave replicates 148bf218eac4b30786ef89e5c5cc1bf4facdf4be S: 8b7b54ee2f4c7a327e1e954db379a519aa7e68b8 172.19.0.4:6379 slots: (0 slots) slave replicates 5964d6968e8527be920f1d60aad8e549ac1c327a M: 5964d6968e8527be920f1d60aad8e549ac1c327a 172.19.0.6:6379 slots:[5461-10922] (5462 slots) master 1 additional replica(s) [OK] All nodes agree about slots configuration. >>> Checkforopen slots... >>> Check slots coverage... [OK] All 16384 slots covered.
==登錄容器01-06任意一個(gè)進(jìn)行查看==
登錄進(jìn)redis客戶(hù)端
dockerexec-it redis02 bash /redis/redis-cli -c -a 123456
查看對(duì)應(yīng)的配置信息
cluster info
查看對(duì)應(yīng)日志
cluster nodes
設(shè)置一個(gè)key值,然后獲取
seta 123 get a "123"
退出后釋放資源
exit exit docker compose down
注意:
[ERR] Node redis01:6379 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.
==出現(xiàn)這個(gè)錯(cuò)誤時(shí),檢查你的 docker-compose.yml 文件或 Docker 命令,確保每個(gè) Redis 實(shí)例的端口映射是唯一的,并且沒(méi)有沖突==。
鏈接:https://blog.csdn.net/m0_74068921/article/details/147077108?spm=1001.2014.3001.5501
-
數(shù)據(jù)庫(kù)
+關(guān)注
關(guān)注
7文章
3900瀏覽量
65745 -
MySQL
+關(guān)注
關(guān)注
1文章
849瀏覽量
27506 -
Docker
+關(guān)注
關(guān)注
0文章
509瀏覽量
12678 -
Redis
+關(guān)注
關(guān)注
0文章
384瀏覽量
11309
原文標(biāo)題:告別單點(diǎn)故障!基于Docker的MySQL主從+Redis集群高可靠架構(gòu)詳解
文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
求MySQL集群配置的思路分享?
如何構(gòu)建一個(gè)穩(wěn)定、高性能的Redis集群?

redis集群狀態(tài)查看命令
redis查看集群狀態(tài)命令
云服務(wù)器 Flexus X 實(shí)例,Docker 集成搭建 Redis 集群

評(píng)論