在linux系統上搭建Redis5.0.3集羣,一下方法都是使用linux命令來執行的。
同時使用了下圖三個軟件。
第一個軟件:創建虛擬機
第二個軟件:查看虛擬機上的系統文件
第三個軟件:鏈接虛擬機
具體使用方法,還需自行去百度學習一下,學習了也對自身有好處。
創建文件夾。
mkdir -p /usr/local/redis/redis-cluster/ //創建文件夾
cd /usr/local/redis/redis-cluster/ //定位目錄位置
mkdir 6380 6381 6382 6383 6384 6385 //在定位的目錄下創建這5個文件夾
安裝wget (wget是一個從網絡上自動下載文件的自由工具) 用來下載Redis5.0.3
../
yum -y install wget
解壓
tar -zxvf redis-5.0.3.tar.gz
安裝gcc(GCC 編譯器是 Linux 下默認的 C/C++ 編譯器)
yum -y install make gcc*
進入解壓之後的目錄
cd redis-5.0.3
編譯安裝 (使用prefix 指定一個安裝位置)
make && make install PREFIX=/usr/local/redis
把redis.conf依次複製到各個文件夾下
cd ../
cp -r redis-5.0.3/redis.conf /usr/local/redis/redis-cluster/6380
cp -r redis-5.0.3/redis.conf /usr/local/redis/redis-cluster/6381
cp -r redis-5.0.3/redis.conf /usr/local/redis/redis-cluster/6382
cp -r redis-5.0.3/redis.conf /usr/local/redis/redis-cluster/6383
cp -r redis-5.0.3/redis.conf /usr/local/redis/redis-cluster/6384
cp -r redis-5.0.3/redis.conf /usr/local/redis/redis-cluster/6385
依次修改redis.conf
vim /usr/local/redis/redis-cluster/6380/redis.conf
(1)修改 bind 修改成 0.0.0.0 。默認綁定本地地址,導致其它地方不可遠程訪問 改成局域網中的IP地址或者0.0.0.0所有ip都可以訪問
(2)開啓遠程訪問 protected-mode no(設置爲非保護模式) 和 修改端口 port 6380。修改端口依次是 6380、6381、6382、6383、6384、6385 ,分別對應5個文件夾
(3)設置後臺運行 daemonize yes(redis後臺運行)
(4)設置pidfile存放在 run目錄下的文件名 pidfile /var/run/redis_6380.pid(需要修改爲 reids_{port}.pid 的形式)。文件名中的數字依次是: 6380、6381、6382、6383、6384、6385 ,分別對應5個文件夾。
(5)設置logfile存放在log目錄下的文件名 logfile /var/log/redis_6380.log(需要修改爲 reids_{port}.log的形式)。文件名中的數字依次是: 6380、6381、6382、6383、6384、6385 ,分別對應5個文件夾。
(6)設置redis集羣密碼 masterauth redis和 requirepass redis注意:所有節點的密碼都必須一致。(也可以不設置,這裏建議還是不要設置的好。不然後邊鏈接都要輸入密碼。)
(7)設置開啓AOF模式,指定持久化方式 appendonly yes
(8)設置啓用集羣模式 cluster-enabled yes,開啓配置文件cluster-config-file nodes-6380.conf (其他文件設置對應的數字,按照設置的5個端口),超時時間 cluster-node-timeout 5000
文件編寫完後,需要保存退出。先按 Esc 鍵,在輸入 :wq! 。注意,這裏的 “ : ” 是英文冒號
啓動全部redis節點
第一中方法,逐一啓動
/usr/local/redis/redis-5.0.3/src/redis-server /usr/local/redis/redis-cluster/6380/redis.conf
/usr/local/redis/redis-5.0.3/src/redis-server /usr/local/redis/redis-cluster/6381/redis.conf
/usr/local/redis/redis-5.0.3/src/redis-server /usr/local/redis/redis-cluster/6382/redis.conf
/usr/local/redis/redis-5.0.3/src/redis-server /usr/local/redis/redis-cluster/6383/redis.conf
/usr/local/redis/redis-5.0.3/src/redis-server /usr/local/redis/redis-cluster/6384/redis.conf
/usr/local/redis/redis-5.0.3/src/redis-server /usr/local/redis/redis-cluster/6385/redis.conf
第二種方法,設置redis_cluster_all_start.sh啓動腳本,在/usr/local/redis/redis-cluster 文件夾下創建。
cd /usr/local/redis/redis-cluster
touch redis_cluster_all_start.sh //創建啓動腳本
chmod u+x redis_cluster_all_start.sh //賦權
vim redis_cluster_all_start.sh //編寫腳本
以下內容就是 redis_cluster_all_start.sh 腳本的內容
#!/bin/bash
/usr/local/redis/redis-5.0.3/src/redis-server /usr/local/redis/redis-cluster/6380/redis.conf
/usr/local/redis/redis-5.0.3/src/redis-server /usr/local/redis/redis-cluster/6381/redis.conf
/usr/local/redis/redis-5.0.3/src/redis-server /usr/local/redis/redis-cluster/6382/redis.conf
/usr/local/redis/redis-5.0.3/src/redis-server /usr/local/redis/redis-cluster/6383/redis.conf
/usr/local/redis/redis-5.0.3/src/redis-server /usr/local/redis/redis-cluster/6384/redis.conf
/usr/local/redis/redis-5.0.3/src/redis-server /usr/local/redis/redis-cluster/6385/redis.conf
統一啓動全部redis 節點
cd /usr/local/redis/redis-cluster
./redis_cluster_all_start.sh
放行端口號 (防火牆關閉了的話,不需要這步)
firewall-cmd --zone=public --add-port=6380/tcp --permanent
firewall-cmd --zone=public --add-port=6381/tcp --permanent
firewall-cmd --zone=public --add-port=6382/tcp --permanent
firewall-cmd --zone=public --add-port=6383/tcp --permanent
firewall-cmd --zone=public --add-port=6384/tcp --permanent
firewall-cmd --zone=public --add-port=6385/tcp --permanent
firewall-cmd --reload
啓動集羣 注意:由於我們設置了redis集羣的密碼,所以要帶上 -a redis(密碼),之前配置的masterauth 密碼
進入到/usr/local/redis/redis-5.0.3/src 目錄下,拷貝一份 redis-cli 到 /usr/local/redis/redis-cluster 目錄下
cd /usr/local/redis/redis-5.0.3/src
cp redis-cli /usr/local/redis/redis-cluster
創建集羣
沒有密碼的情況下
cd /usr/local/redis/redis-cluster
./redis-cli --cluster create 192.168.6.135:6380 192.168.6.135:6381 192.168.6.135:6382 192.168.6.135:6383 192.168.6.135:6384 192.168.6.135:6385 --cluster-replicas 1
有密碼的情況
cd /usr/local/redis/redis-cluster
./redis-cli --cluster create 192.168.6.135:6380 192.168.6.135:6381 192.168.6.135:6382 192.168.6.135:6383 192.168.6.135:6384 192.168.6.135:6385 --cluster-replicas 1 -a redis //結尾的redis 是密碼。
查看redis是否啓動成功
ps -ef | grep redis
查看redis端口開啓情況
netstat -tnlp | grep redis //查看redis端口開啓情況
連接 (注意:這裏的ip地址爲自身ip地址,請注意修改)
cd /usr/local/redis/redis-cluster
./redis-cli -c -h 192.168.6.131 -p 6380
打印集羣信息
cluster info
如果出現一下的報錯 “NOAUTH Authentication required” 是因爲之前配置 redis.conf 文件時,設置了 requirepassword 這個密碼
那麼只要輸入 auth “redis” 。注意雙引號內是自己設置的密碼。如果沒有必要,就不要設置密碼了。
輸入完密碼後,再輸入 cluster info 打印集羣信息
列出集羣當前已知的所有節點(node),以及這些節點的相關信息
cluster nodes