1. 程式人生 > >搭建完全分散式redis叢集

搭建完全分散式redis叢集

這裡用三臺伺服器搭建一個完全分散式redis叢集,用來做爬蟲請求url的共享佇列.每臺伺服器建立兩個節點(一個master 一個slave),當mater掛了的時候slave會頂上去,這樣就構成了一個三主三從的叢集。

三臺伺服器:host1 host2 host3

6379埠為主節點,6380為輔助節點


1.下載

下載地址:http://download.redis.io/releases/

可選想要的版本進行下載,一般用http://download.redis.io/releases/redis-stable.tar.gz

cd /root

wget http://download.redis.io/releases/redis-stable.tar.gz

tar -zxvf redis-stable.tar.gz

mv redis-stable redis-6379

2編譯redis

cd redis-6379

make

make install

3修改配置

vi redis.conf

#redis後臺執行

daemonize yes

#允許訪問的機器

bind 0.0.0.0

#

port 6379

#日誌輸入配置

loglevel notice

logfile"redis-6379.log"

#叢集配置

#開啟叢集

cluster-enabled yes

#叢集的配置,首次啟動時會自動生成

cluster-config-filenode-6379.log

#請求超時時間當前設定為5

cluster-node-timeout 5000

#aof日誌開啟,每次寫操作都會記錄一條日誌

appendonly yes

4啟動 測試

src/redis-server redis.conf

ps -ef | grep redis

看到6379正在執行

5.搭建叢集

安裝 ruby

yum -y install ruby

yum -y install rubygems

安裝 ruby redis 驅動

gem install redis

將redis-6379複製一份為redis-6380,再修改配置檔案


#redis後臺執行

daemonize yes

#允許訪問的機器

bind 0.0.0.0

#

port 6380

#日誌輸入配置

loglevel notice

logfile"redis-6380.log"

#叢集配置

#開啟叢集

cluster-enabled yes

#叢集的配置,首次啟動時會自動生成

cluster-config-filenode-6380.log

#請求超時時間當前設定為5

cluster-node-timeout 5000

#aof日誌開啟,每次寫操作都會記錄一條日誌

appendonly yes

將這臺伺服器上的的redis-6379和redis-6380複製到另外兩臺伺服器

命令建立叢集:

src/redis-trib.rb create –replicas 1 host1:6379 106.host2:6379 host3:6379host1:6380 106.host2:6380 host3:6380 


  1表示主從關係1:1的比例,前三個是主節點)

檢視叢集情況:

src/redis-cli

cluster info


6叢集測試

叢集測試

進去叢集環境:

[[email protected] cluster]# redis-cli -c -h 127.0.0.1 -p 6379

127.0.0.1:7000>set sex male

Ok

127.0.0.1:7000>get sex

male

切換任意節點:

[[email protected] redis-6379]# src/redis-cli -c -h 127.0.0.1 -p 6379

[[email protected] cluster]# redis-cli -c -h 127.0.0.1 -p 7004

127.0.0.1:7004> get sex

-> Redirected to slot [2584] located at 127.0.0.1:7000

"male"

7.清空叢集資料

src/cli

flushall

需要每個節點都要執行一次


8redis視覺化操作工具

Redis Desktop Manager

9報錯備註

1》 ruby版本太低

手動安裝ruby環境

$ ./configure

$ make && make install

檢視安裝是否成功

$ ruby -v

如果報錯執行

$ export PATH=/usr/local/bin:$PATH

再測試

$ ruby -v

2》建立叢集一直Waiting for the cluster to join...................

解決:

刪除 nodes-6379.conf  redis-6379.log

根目錄 Chmod -R 777 *

檢視防火牆狀態service iptables status

重新啟動redis