操作系統環境:Ubuntu 20.04
Redis版本:6.2.8
如果已經安裝過了,找到自己的安裝路徑。如果沒有安裝過,去官網下載 當前最新版本是7.0,我這里用的是6.0,下載 redis-6.2.8.tar.gz,拷貝到自己的虛擬機或者云服務器。
tar -zxvf redis-6.2.8.tar.gz 解壓
cd redis-6.2.8
make && make install (注意是root權限)
在一臺機器通過監聽不同的port模擬集群(三臺主服務器,每臺主服務器有兩個從服務器,總共9臺服務器)
cd redis-6.2.8
mkdir redis_cluster
mkdir 6390 6391 6392 6393 6394 6395 6396 6397 6398
3、以6390為例,在6390目錄下創建文件redis.conf,并添加如下配置注意:需要在步驟二創建的每個文件夾下創建配置文件,并做相應修改。
touch redis.conf
#端口號
port 6390
#默認ip為127.0.0.1,需要改為其他節點機器可以訪問的ip,否則創建集群時無法訪問對應的端口,無法創建集群
bind 192.168.60.69
#redis后臺運行
daemonize yes
#pidfile文件對應6390,6391,6392…
pidfile /var/run/redis_6390.pid
#開啟集群
cluster-enabled yes
#集群的配置,配置文件首次啟動自動生成6390,6391,6392…
cluster-config-file nodes_6390.conf
#請求超時,默認15秒,可自行設置
cluster-node-timeout 10100
#aof日志開啟,有需要就開啟,它會每次寫操作都記錄一條日志
appendonly yes
4、分別向分別向6381-6388目錄copy一份配置文件cp -r redis.conf ../6391
cp -r redis.conf ../6392
cp -r redis.conf ../6393
cp -r redis.conf ../6394
cp -r redis.conf ../6395
cp -r redis.conf ../6396
cp -r redis.conf ../6397
cp -r redis.conf ../6398
需要修改的配置:
port 639x (根據端口號修改)
bind 127.0.0.1 我這里是本機模擬,寫的本地地址,根據實際ip地址填寫
pidfile /var/run/redis_639x.pid(根據端口號修改)
cluster-config-file nodes_639x.conf(根據端口號修改)
5. 啟動Redis各個節點服務(一定要在src目錄下啟動,在其他地方無法啟動)./redis-server …/redis_cluster/6390/redis.conf
./redis-server …/redis_cluster/6391/redis.conf
./redis-server …/redis_cluster/6392/redis.conf
./redis-server …/redis_cluster/6393/redis.conf
./redis-server …/redis_cluster/6394/redis.conf
./redis-server …/redis_cluster/6395/redis.conf
./redis-server …/redis_cluster/6396/redis.conf
./redis-server …/redis_cluster/6397/redis.conf
./redis-server …/redis_cluster/6398/redis.conf
也可以寫個腳本啟動,就不用一個一個啟動了:
vi cluster.sh
#!bin/bash
redis-server 6390/redis.conf
redis-server 6391/redis.conf
redis-server 6392/redis.conf
redis-server 6393/redis.conf
redis-server 6394/redis.conf
redis-server 6395/redis.conf
redis-server 6396/redis.conf
redis-server 6397/redis.conf
redis-server 6398/redis.conf
給腳本賦予執行權限 : chmod +x cluster.sh
運行腳本:./cluster.sh
因為redis最終是以數據庫的形式的存在,原理和mysql一樣,集群創建成功只能說明安裝redis成功了,但是最終>
!!!注意還需要在redis的src目錄下運行
當第一次運行的時候,才需要創建數據庫,以后的每一次運行都不再需要了,直接啟動集群即可
–cluster-replicas 2表示每個主節點有2個從節點
redis-cli --cluster create 127.0.0.1:6390 127.0.0.1:6391 127.0.0.1:6392 127.0.0.1:6393 127.0.0.1:6394 127.0.0.1:6395 127.0.0.1:6396 127.0.0.1:6397 127.0.0.1:6398 --cluster-replicas 2
注意:這里需要自己手動輸入yes,如果超時了還沒有輸入,則會自動退出,需要再次創建!
看到以下信息說明創建redis集群搭建成功,且16384個槽位分配成功,:
M: eabfa31d4e7cefa01a64ec5e67ddba219ad74035 127.0.0.1:6390
slots:[0-5460] (5461 slots) master
M: 2ac5623a741d707d4e2319795386d7e13b2ef575 127.0.0.1:6391
slots:[5461-10922] (5462 slots) master
M: 6e4cfc6b5918ed9b59e8e7c8765f1e37a86d3d1b 127.0.0.1:6392
slots:[10923-16383] (5461 slots) master
S: 41fdf2a9bec000cb282bd9bc75a1aa7f33417889 127.0.0.1:6393
replicates 6e4cfc6b5918ed9b59e8e7c8765f1e37a86d3d1b
S: 15403c0a88c4ccf9ad2b67364588819621774085 127.0.0.1:6394
replicates eabfa31d4e7cefa01a64ec5e67ddba219ad74035
S: 38ccc4d1ff1d7a3a31ed5ee805e5c479a6114588 127.0.0.1:6395
replicates 6e4cfc6b5918ed9b59e8e7c8765f1e37a86d3d1b
S: 6f9550397b996b1d53eaeb98d344cef3945ac482 127.0.0.1:6396
replicates 2ac5623a741d707d4e2319795386d7e13b2ef575
S: 78be26f6bdaa88e96e61ba145ba4236f59e9c5bc 127.0.0.1:6397
replicates 2ac5623a741d707d4e2319795386d7e13b2ef575
S: b6429d56397229322f3144b59b3c7e79904fa349 127.0.0.1:6398
replicates eabfa31d4e7cefa01a64ec5e67ddba219ad74035
Can I set the above configuration? (type 'yes' to accept): yes
>>>Nodes configuration updated
>>>Assign a different config epoch to each node
>>>Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
......
>>>Performing Cluster Check (using node 127.0.0.1:6390)
M: eabfa31d4e7cefa01a64ec5e67ddba219ad74035 127.0.0.1:6390
slots:[0-5460] (5461 slots) master
2 additional replica(s)
S: 78be26f6bdaa88e96e61ba145ba4236f59e9c5bc 127.0.0.1:6397
slots: (0 slots) slave
replicates 2ac5623a741d707d4e2319795386d7e13b2ef575
M: 6e4cfc6b5918ed9b59e8e7c8765f1e37a86d3d1b 127.0.0.1:6392
slots:[10923-16383] (5461 slots) master
2 additional replica(s)
S: 6f9550397b996b1d53eaeb98d344cef3945ac482 127.0.0.1:6396
slots: (0 slots) slave
replicates 2ac5623a741d707d4e2319795386d7e13b2ef575
S: 15403c0a88c4ccf9ad2b67364588819621774085 127.0.0.1:6394
slots: (0 slots) slave
replicates eabfa31d4e7cefa01a64ec5e67ddba219ad74035
S: 38ccc4d1ff1d7a3a31ed5ee805e5c479a6114588 127.0.0.1:6395
slots: (0 slots) slave
replicates 6e4cfc6b5918ed9b59e8e7c8765f1e37a86d3d1b
M: 2ac5623a741d707d4e2319795386d7e13b2ef575 127.0.0.1:6391
slots:[5461-10922] (5462 slots) master
2 additional replica(s)
S: b6429d56397229322f3144b59b3c7e79904fa349 127.0.0.1:6398
slots: (0 slots) slave
replicates eabfa31d4e7cefa01a64ec5e67ddba219ad74035
S: 41fdf2a9bec000cb282bd9bc75a1aa7f33417889 127.0.0.1:6393
slots: (0 slots) slave
replicates 6e4cfc6b5918ed9b59e8e7c8765f1e37a86d3d1b
[OK] All nodes agree about slots configuration.
>>>Check for open slots...
>>>Check slots coverage...
[OK] All 16384 slots covered.
可以看到:
ps -ef | grep redis
看到如下信息就說明集群啟動成功了。
root 2418510 1 0 11:32 ? 00:00:00 ./redis-server 127.0.0.1:6390 [cluster]
root 2418609 1 0 11:32 ? 00:00:00 ./redis-server 127.0.0.1:6391 [cluster]
root 2418712 1 0 11:32 ? 00:00:00 ./redis-server 127.0.0.1:6392 [cluster]
root 2418815 1 0 11:32 ? 00:00:00 ./redis-server 127.0.0.1:6393 [cluster]
root 2419062 1 0 11:32 ? 00:00:00 ./redis-server 127.0.0.1:6394 [cluster]
root 2419278 1 0 11:33 ? 00:00:00 ./redis-server 127.0.0.1:6395 [cluster]
root 2419440 1 0 11:33 ? 00:00:00 ./redis-server 127.0.0.1:6396 [cluster]
root 2419575 1 0 11:33 ? 00:00:00 ./redis-server 127.0.0.1:6397 [cluster]
root 2419749 1 0 11:33 ? 00:00:00 ./redis-server 127.0.0.1:6398 [cluster]
進入redis的服務器客戶端,也必須要在src目錄下進行。其中,-c 表示以集群的方式啟動節點,-p 是節點的端口
./redis-cli -c -p 6390
輸入cluster info 查看集群狀態
輸入cluster nodes 查看集群各個節點主從關系
quit
10、注意集群是去中心化的,從任意一個從節點,都可以訪問到主節點。
集群的讀寫都走主節點
你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
網頁標題:單機模擬集群(三主兩從)-創新互聯
標題網址:http://vcdvsql.cn/article14/cdisge.html
成都網站建設公司_創新互聯,為您提供商城網站、做網站、營銷型網站建設、靜態網站、App開發、網站內鏈
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯