介紹安裝環(huán)境與版本
用兩臺(tái)虛擬機(jī)模擬6個(gè)節(jié)點(diǎn),一臺(tái)機(jī)器3個(gè)節(jié)點(diǎn)翰舌,創(chuàng)建出3 master束莫、3 salve 環(huán)境。
redis 采用 redis-3.2.4 版本巷懈。
兩臺(tái)虛擬機(jī)都是 CentOS该抒,一臺(tái) CentOS6.5 (IP:192.168.174.128),一臺(tái) CentOS6.5(IP:192.168.174.129)
安裝過(guò)程 :
- 下載并解壓 :
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é)點(diǎn)
首先在 192.168.174.128 機(jī)器上 /usr/local/redis/ 目錄下創(chuàng)建 redis_cluster 目錄顶燕;
mkdir redis_cluster
在 redis_cluster 目錄下凑保,創(chuàng)建名為7000、7001涌攻、7002的目錄欧引,并將 redis.conf 拷貝到這三個(gè)目錄中
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
- 分別修改這三個(gè)配置文件,修改如下內(nèi)容 :
port 7000 //端口7000,7001,7002
bind 本機(jī)ip(192.168.174.128) //默認(rèn)ip為127.0.0.1 需要改為其他節(jié)點(diǎn)機(jī)器可訪問(wèn)的ip 否則創(chuàng)建集群時(shí)無(wú)法訪問(wèn)對(duì)應(yīng)的端口恳谎,無(wú)法創(chuàng)建集群
daemonize yes //redis后臺(tái)運(yùn)行
pidfile /var/run/redis_7000.pid //pidfile文件對(duì)應(yīng)7000,7001,7002
cluster-enabled yes //開(kāi)啟集群 把注釋#去掉
cluster-config-file nodes_7000.conf //集群的配置 配置文件首次啟動(dòng)自動(dòng)生成 7000,7001,7002
cluster-node-timeout 15000 //請(qǐng)求超時(shí) 默認(rèn)15秒芝此,可自行設(shè)置
appendonly yes //aof日志開(kāi)啟 有需要就開(kāi)啟憋肖,它會(huì)每次寫(xiě)操作都記錄一條日志
接著在另外一臺(tái)機(jī)器上(192.168.174.129), 重復(fù)以上三步,只是把目錄改為7003婚苹、7004岸更、7005,對(duì)應(yīng)的配置文件也按照這個(gè)規(guī)則修改即可
- 啟動(dòng)各個(gè)節(jié)點(diǎn)
第一臺(tái)機(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
另外一臺(tái)機(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 啟動(dòng)情況
一臺(tái)機(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
......
另外一臺(tái)機(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 這個(gè)工具膊升,就在解壓目錄的 src 目錄中怎炊,第三步中已將它復(fù)制到 /usr/local/bin 目錄中,可以直接在命令行中使用了廓译。使用下面這個(gè)命令即可完成安裝评肆。
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
其中,前三個(gè) ip:port 為第一臺(tái)機(jī)器的節(jié)點(diǎn)非区,剩下三個(gè)為第二臺(tái)機(jī)器瓜挽。
如果出錯(cuò)的話 :
這個(gè)工具是用 ruby 實(shí)現(xiàn)的,所以需要安裝 ruby征绸。安裝命令如下:
yum -y install ruby ruby-devel rubygems rpm-build
gem install redis
之后再運(yùn)行 redis-trib.rb 命令秸抚,會(huì)出現(xiàn)如下提示:
輸入 yes 即可,然后出現(xiàn)如下內(nèi)容歹垫,說(shuō)明安裝成功剥汤。
- 集群驗(yàn)證
在第一臺(tái)機(jī)器上連接集群的7000端口的節(jié)點(diǎn),在另外一臺(tái)連接7003節(jié)點(diǎn)排惨,連接方式為 redis-cli -h 192.168.174.128 -c -p 7000 ,加參數(shù) -C 可連接到集群吭敢,因?yàn)樯厦?redis.conf 將 bind 改為了ip地址,所以 -h 參數(shù)不可以省略暮芭。
在7000節(jié)點(diǎn)執(zhí)行命令 set yue00er yue00er , 執(zhí)行結(jié)果如下:
然后在另外一臺(tái)7003端口鹿驼,查看 key 為 yue00er 的內(nèi)容, get yue00er 辕宏,執(zhí)行結(jié)果如下:
說(shuō)明集群運(yùn)作正常畜晰。