1、概述java
Redis3.0版本以後支持Cluster.node
2、redis cluster安裝redis
一、下載和解包vim
cd /usr/local/ wget http://download.redis.io/releases/redis-5.0.5.tar.gz tar -zxvf redis-5.0.5.tar.gz
二、 編譯安裝ruby
cd redis-5.0.5 make && make install
三、建立redis節點bash
測試咱們選擇2臺服務器,分別爲:192.168.1.237,192.168.1.238.每分服務器有3個節點。服務器
我先在192.168.1.237建立3個節點:app
cd /usr/local/ mkdir redis_cluster //建立集羣目錄
cd /usr/local/redis_cluster
mkdir 7000 7001 7002 //分別表明三個節點 其對應端口 7000 7001 7002
//建立7000節點爲例,拷貝到7000目錄 cp /usr/local/redis-5.0.5/redis.conf ./redis_cluster/7000/ //拷貝到7001目錄 cp /usr/local/redis-5.0.5/redis.conf ./redis_cluster/7001/ //拷貝到7002目錄 cp /usr/local/redis-5.0.5/redis.conf ./redis_cluster/7002/
分別對7001,700二、7003文件夾中的3個文件修改對應的配置post
bind ...//機器ip地址
port 7000 //端口7000,7002,7003
daemonize yes //redis後臺運行 pidfile /var/run/redis_7000.pid //pidfile文件對應7000,7002,7003 appendonly yes //aof日誌開啓 有須要就開啓,它會每次寫操做都記錄一條日誌 cluster-enabled yes //開啓集羣 把註釋#去掉 cluster-config-file nodes_7000.conf //集羣的配置 配置文件首次啓動自動生成 7000,7001,7002 cluster-node-timeout 5000 //請求超時 設置5秒夠了
在192.168.1.238建立3個節點:對應的端口改成7003,7004,7005.配置對應的改一下就能夠了。測試
把修改後的配置文件,copy到8002-8006,修改第二、三、5項裏的端口號,能夠用批量替換:
vim redis.config
文件中使用 esc:
:%s/源字符串/目的字符串/g
四、兩臺機啓動各節點(兩臺服務器方式同樣)
cd /usr/local redis-server redis_cluster/7000/redis.conf redis-server redis_cluster/7001/redis.conf redis-server redis_cluster/7002/redis.conf redis-server redis_cluster/7003/redis.conf redis-server redis_cluster/7004/redis.conf redis-server redis_cluster/7005/redis.conf
-bash: redis-server: command not found:
ln -s /usr/local/redis-5.0.5/src/redis-server /usr/bin/redis-server
重啓命令:
/usr/local/redis-5.0.5/src/redis-cli -c -h 127.0.0.1 -p 7002 shutdown
五、查看服務
ps -ef | grep redis #查看是否啓動成功
netstat -tnlp | grep redis #能夠看到redis監聽端口
3、建立集羣(redis5之前的版本集羣是依靠ruby腳本redis-trib.rb實現)
注意防火牆,能夠相互訪問
redis-5.0.5/src/redis-cli --cluster create --cluster-replicas 1 172.10.0.121:7000 172.10.0.121:7001 172.10.0.121:7002 172.10.0.123:7003 172.10.0.123:7004 172.10.0.123:7005
解釋下, --replicas 1 表示 自動爲每個master節點分配一個slave節點 上面有6個節點,程序會按照必定規則生成 3個master(主)3個slave(從)
前面已經提醒過的 防火牆必定要開放監聽的端口,不然會建立失敗。
運行中,提示Can I set the above configuration? (type 'yes' to accept): yes //輸入yes
接下來 提示 Waiting for the cluster to join.......... 安裝的時候在這裏就一直等等等,沒反應,傻傻等半天,看這句提示上面一句,Sending Cluster Meet Message to join the Cluster.
這下明白了,我剛開始在一臺Server上去配,也是不須要等的,這裏還須要跑到Server2上作一些這樣的操做。
在127.0.0.1, redis-cli -c -p 700* 分別進入redis各節點的客戶端命令窗口, 依次輸入 cluster meet 192.168.1.238 7000……
回到Server1,已經建立完畢了。
查看一下 /usr/local/redis/src/redis-cli check 127.0.0.1:7000
到這裏集羣已經初步搭建好了。
4、測試
1)鏈接任意一個客戶端便可: