redis叢集建立
阿新 • • 發佈:2018-12-25
redis叢集的搭建與簡單實用
1. 準備兩臺伺服器模擬6個節點,搭建redis叢集,每臺伺服器有三個節點,建立3主3從環境。
2.實用yum方式進行安裝 yum install redis
3.將 redis-trib.rb 複製到 /usr/local/bin 目錄下 cp redis-trib.rb /usr/local/bin/
4.建立 Redis 節點,在/etc下建立redis_cluster目錄 mkdir redis_cluster
5.在 redis_cluster 目錄下,建立名為7000、7001、7002的目錄,並將 redis.conf 拷貝到這三個目錄中
mkdir 6380 6381 6382
cp redis.conf redis_cluster/6380
cp redis.conf redis_cluster/6381
cp redis.conf redis_cluster/6382
6.分別修改這三個配置檔案,修改如下內容
port 6380 //埠6380,6381,6382
bind 本機ip //預設ip為127.0.0.1 需要改為其他節點機器可訪問的ip 否則建立叢集時無法訪問對應的埠,無法建立叢集
daemonize yes
//redis後臺執行pidfile
/var/run/redis_6380.pid
//pidfile檔案對應6380,6381,6382
cluster-enabled yes//開啟叢集 把註釋#去掉
cluster-config-file nodes_6380.conf
//叢集的配置 配置檔案首次啟動自動生成
6380,6381,6382cluster-node-timeout 15000//請求超時 預設15秒,可自行設定
appendonly yes//aof日誌開啟 有需要就開啟,它會每次寫操作都記錄一條日誌
7.接著在另外一臺機器上,的操作重複以上三步,只是把目錄改為6383、6384、6385,對應的配置檔案也按照這個規則修改即可.
8.啟動各個節點
第一臺機器上執行redis-server redis_cluster/6380/redis.conf redis-server redis_cluster/6381/redis.conf redis-server redis_cluster/6382/redis.conf 另外一臺機器上執行redis-server redis_cluster/6383/redis.conf
redis-server redis_cluster/6384/redis.conf redis-server redis_cluster/6385/redis.conf
9.檢查 redis 啟動情況
ps -ef | grep redis
root 25475 1 0 Sep20 ? 01:06:41 redis-server 0.0.0.0:6383 [cluster]
root 25479 1 0 Sep20 ? 01:50:51 redis-server 0.0.0.0:6384 [cluster]
root 25483 1 0 Sep20 ? 00:41:10 redis-server 0.0.0.0:6385 [cluster]
ps -ef | grep redis
tcp 0 0 0.0.0.0:16383 0.0.0.0:* LISTEN 25475/redis-server
tcp 0 0 0.0.0.0:16384 0.0.0.0:* LISTEN 25479/redis-server
tcp 0 0 0.0.0.0:16385 0.0.0.0:* LISTEN 25483/redis-server
tcp 0 0 0.0.0.0:6383 0.0.0.0:* LISTEN 25475/redis-server
tcp 0 0 0.0.0.0:6384 0.0.0.0:* LISTEN 25479/redis-server
tcp 0 0 0.0.0.0:6385 0.0.0.0:* LISTEN
25483/redis-server
10.yum -y install ruby ruby-devel rubygems rpm-build
11.gem install redis
12.進入防火牆vim /etc/sysconfig/iptables 新增埠
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6380 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6381 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6382 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 16380 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 16381 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 16382 -j ACCEPT
兩臺伺服器都需要進行埠的新增
-A INPUT -m state --state NEW -m tcp -p tcp --dport 16383 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 16384 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 16385 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6383 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6384 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6385 -j ACCEPT
13.建立叢集
redis-trib.rb create --replicas 1 10.3.1.117:6380 10.3.1.117:6381 10.3.1.117:6382 10.3.1.112:6383 10.3.1.112:6384 10.3.1.112:6385
14.redis-cli -h 10.3.1.117 -c -p 7002