文章目錄
- Redis搭建分片集群
- 1. 搭建的分片集群結構
- 2.準備實例和配置
- (1)創建目錄
- (2)創建配置文件
- (3)將這個文件拷貝到每個目錄下
- (4)修改每個目錄下的redis.conf,將其中的6379修改為與所在目錄一致
- 3.啟動
- (1)直接啟動服務
- (2)通過ps查看狀態
- 4.創建集群
- 5.通過命令可以查看集群狀態
Redis搭建分片集群
主從和哨兵可以解決高可用、高并發讀的問題。但是依然有兩個問題沒有解決:
- 海量數據存儲問題
- 高并發寫的問題
使用分片集群可以解決上述問題,分片集群特征:
- 集群中有多個master,每個master保存不同數據
- 每個master都可以有多個slave節點
- master之間通過ping監測彼此健康狀態
- 客戶端請求可以訪問集群任意節點,最終都會被轉發到正確節點
1. 搭建的分片集群結構
分片集群需要的節點數量較多,這里我們搭建一個最小的分片集群,包含3個master節點,每個master包含一個slave節點,結構如下:
這里我們會在同一臺虛擬機中開啟6個redis實例,模擬分片集群,信息如下:
2.準備實例和配置
(1)創建目錄
刪除之前搭建主從結構的7001、7002、7003這幾個目錄,重新創建出7001、7002、7003、8001、8002、8003目錄。
# 進入/opt目錄
cd /opt
# 刪除舊的,避免配置干擾
rm -rf 7001 7002 7003
# 創建目錄
mkdir 7001 7002 7003 8001 8002 8003
(2)創建配置文件
在/opt 下準備一個新的redis.conf文件,內容如下:
port 6379
# 開啟集群功能
cluster-enabled yes
# 集群的配置文件名稱,不需要我們創建,由redis自己維護
cluster-config-file /opt/6379/nodes.conf
# 節點心跳失敗的超時時間
cluster-node-timeout 5000
# 持久化文件存放目錄
dir /opt/6379
# 綁定地址
bind 0.0.0.0
# 讓redis后臺運行
daemonize yes
# 注冊的實例ip
replica-announce-ip 192.168.188.3
# 保護模式
protected-mode no
# 數據庫數量
databases 1
# 日志
logfile /opt/6379/run.log
requirepass 123123
命令如下:
vi redis.conf
(3)將這個文件拷貝到每個目錄下
# 進入/opt目錄
cd /opt
# 執行拷貝
echo 7001 7002 7003 8001 8002 8003 | xargs -t -n 1 cp redis.conf
(4)修改每個目錄下的redis.conf,將其中的6379修改為與所在目錄一致
# 進入/opt目錄
cd /opt
# 修改配置文件
printf '%s\n' 7001 7002 7003 8001 8002 8003 | xargs -I{} -t sed -i 's/6379/{}/g' {}/redis.conf
3.啟動
(1)直接啟動服務
因為已經配置了后臺啟動模式,所以可以直接啟動服務。
# 進入/opt目錄
cd /opt
# 一鍵啟動所有服務
printf '%s\n' 7001 7002 7003 8001 8002 8003 | xargs -I{} -t redis-server {}/redis.conf
(2)通過ps查看狀態
ps -ef | grep redis
可以看到6個redis-server服務都已經啟動成功了。
4.創建集群
雖然服務啟動了,但是目前每個服務之間都是獨立的,沒有任何關聯。
我們需要執行命令來創建集群,在Redis5.0之前創建集群比較麻煩,5.0之后集群管理命令都集成到了redis-cli中。
我使用的是Redis7.0.14版本,集群管理以及集成到了redis-cli中,格式如下:
redis-cli -a 123123 --cluster create --cluster-replicas 1 192.168.188.3:7001 192.168.188.3:7002 192.168.188.3:7003 192.168.188.3:8001 192.168.188.3:8002 192.168.188.3:8003
遇到錯誤的朋友可以查看我的另外兩篇博文,看看有沒有幫助。
https://blog.csdn.net/weixin_43378573/article/details/134814159?spm=1001.2014.3001.5501
https://blog.csdn.net/weixin_43378573/article/details/134813793
5.通過命令可以查看集群狀態
redis-cli -p 7001 -a 123123 cluster nodes
【完結撒花~】