介紹安裝環(huán)境與版本
用兩臺虛擬機(jī)模擬6個節(jié)點,一臺機(jī)器3個節(jié)點,創(chuàng)建出3 master、3 salve 環(huán)境。
redis 采用 redis-3.2.4 版本。
兩臺虛擬機(jī)都是 CentOS,一臺 CentOS6.5 (IP:192.168.174.128),一臺 CentOS6.5(IP:192.168.174.129)
安裝過程 :
- 下載并解壓 :
cd /usr/local/src
wget http://download.redis.io/releases/redis-3.2.4.tar.gz
tar -zxvf redis-3.2.4.tar.gz - 編譯安裝
cd redis-3.2.4
安裝到 /usr/local/redis 目錄下
make && make PREFIX=/usr/local/redis install
順便將 redis-trib.rb 復(fù)制到 /usr/local/bin 目錄下
cd src
cp redis-trib.rb /usr/local/bin/
- 創(chuàng)建 Redis 節(jié)點
首先在 192.168.174.128 機(jī)器上 /usr/local/redis/ 目錄下創(chuàng)建 redis_cluster 目錄;
mkdir redis_cluster
在 redis_cluster 目錄下,創(chuàng)建名為7000、7001、7002的目錄,并將 redis.conf 拷貝到這三個目錄中
mkdir 7000 7001 7002
cp /usr/local/src/redis-3.2.4/redis.conf /usr/local/redis/redis_cluster/7000
cp /usr/local/src/redis-3.2.4/redis.conf /usr/local/redis/redis_cluster/7001
cp /usr/local/src/redis-3.2.4/redis.conf /usr/local/redis/redis_cluster/7002
- 分別修改這三個配置文件,修改如下內(nèi)容 :
port 7000 //端口7000,7001,7002
bind 本機(jī)ip(192.168.174.128) //默認(rèn)ip為127.0.0.1 需要改為其他節(jié)點機(jī)器可訪問的ip 否則創(chuàng)建集群時無法訪問對應(yīng)的端口,無法創(chuàng)建集群
daemonize yes //redis后臺運行
pidfile /var/run/redis_7000.pid //pidfile文件對應(yīng)7000,7001,7002
cluster-enabled yes //開啟集群 把注釋#去掉
cluster-config-file nodes_7000.conf //集群的配置 配置文件首次啟動自動生成 7000,7001,7002
cluster-node-timeout 15000 //請求超時 默認(rèn)15秒,可自行設(shè)置
appendonly yes //aof日志開啟 有需要就開啟,它會每次寫操作都記錄一條日志
接著在另外一臺機(jī)器上(192.168.174.129), 重復(fù)以上三步,只是把目錄改為7003、7004、7005,對應(yīng)的配置文件也按照這個規(guī)則修改即可
- 啟動各個節(jié)點
第一臺機(jī)器上執(zhí)行
/usr/local/redis/bin/redis-server /usr/local/redis/redis_cluster/7000/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis/redis_cluster/7001/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis/redis_cluster/7002/redis.conf
另外一臺機(jī)器上執(zhí)行
/usr/local/redis/bin/redis-server /usr/local/redis/redis_cluster/7003/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis/redis_cluster/7004/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis/redis_cluster/7005/redis.conf
- 檢查 redis 啟動情況
一臺機(jī)器
ps -ef | grep redis
root 61020 1 0 02:14 ? 00:00:01 redis-server 192.168.174.128:7000 [cluster]
root 61024 1 0 02:14 ? 00:00:01 redis-server 192.168.174.128:7001 [cluster]
root 61029 1 0 02:14 ? 00:00:01 redis-server 192.168.174.128:7002 [cluster]
netstat -tnlp | grep redis
tcp 0 0 192.168.174.128:17000 0.0.0.0:* LISTEN 61020/redis-server
tcp 0 0 192.168.174.128:17001 0.0.0.0:* LISTEN 61024/redis-server
tcp 0 0 192.168.174.128:17002 0.0.0.0:* LISTEN 61029/redis-server
tcp 0 0 192.168.174.128:7000 0.0.0.0:* LISTEN 61020/redis-server
tcp 0 0 192.168.174.128:7001 0.0.0.0:* LISTEN 61024/redis-server
tcp 0 0 192.168.174.128:7002 0.0.0.0:* LISTEN 61029/redis-server
......
另外一臺機(jī)器
ps -ef | grep redis
root 9957 1 0 02:32 ? 00:00:01 redis-server 192.168.174.129:7003 [cluster]
root 9964 1 0 02:32 ? 00:00:01 redis-server 192.168.174.129:7004 [cluster]
root 9971 1 0 02:32 ? 00:00:01 redis-server 192.168.174.129:7005 [cluster]
root 10065 4744 0 02:38 pts/0 00:00:00 grep --color=auto redis
netstat -tlnp | grep redis
tcp 0 0 192.168.174.129:17003 0.0.0.0:* LISTEN 9957/redis-server 1
tcp 0 0 192.168.174.129:17004 0.0.0.0:* LISTEN 9964/redis-server 1
tcp 0 0 192.168.174.129:17005 0.0.0.0:* LISTEN 9971/redis-server 1
tcp 0 0 192.168.174.129:7003 0.0.0.0:* LISTEN 9957/redis-server 1
tcp 0 0 192.168.174.129:7004 0.0.0.0:* LISTEN 9964/redis-server 1
tcp 0 0 192.168.174.129:7005 0.0.0.0:* LISTEN 9971/redis-server 1
......
7.創(chuàng)建集群
Redis 官方提供了 redis-trib.rb 這個工具,就在解壓目錄的 src 目錄中,第三步中已將它復(fù)制到 /usr/local/bin 目錄中,可以直接在命令行中使用了。使用下面這個命令即可完成安裝。
redis-trib.rb create --replicas 1 192.168.174.128:7000 192.168.174.128:7001 192.168.174.128:7002 192.168.174.129:7003 192.168.174.129:7004 192.168.174.129:7005
其中,前三個 ip:port 為第一臺機(jī)器的節(jié)點,剩下三個為第二臺機(jī)器。
如果出錯的話 :

這個工具是用 ruby 實現(xiàn)的,所以需要安裝 ruby。安裝命令如下:
yum -y install ruby ruby-devel rubygems rpm-build
gem install redis
之后再運行 redis-trib.rb 命令,會出現(xiàn)如下提示:

輸入 yes 即可,然后出現(xiàn)如下內(nèi)容,說明安裝成功。
- 集群驗證
在第一臺機(jī)器上連接集群的7000端口的節(jié)點,在另外一臺連接7003節(jié)點,連接方式為 redis-cli -h 192.168.174.128 -c -p 7000 ,加參數(shù) -C 可連接到集群,因為上面 redis.conf 將 bind 改為了ip地址,所以 -h 參數(shù)不可以省略。
在7000節(jié)點執(zhí)行命令 set yue00er yue00er , 執(zhí)行結(jié)果如下:

然后在另外一臺7003端口,查看 key 為 yue00er 的內(nèi)容, get yue00er ,執(zhí)行結(jié)果如下:

說明集群運作正常。