redis集羣部署

 程序運行操做系統版本

  • Linux系統版本:CentOS release 6.7
  • Linux內核版本:2.6.32-573.el6.x86_64

 

程序解釋運行環境

   Ruby 2.5.1(6個節點中,只須要有一個節點安裝Ruby環境)node

   Redis 4.0.10redis

防火牆策略

     關閉防火牆或者添加防火牆策略  6379 和16379vim

 

 服務運行方式

     6個節點上分別啓動redis-server,並在其中一個安裝有Ruby環境的節點上運行redis-trib.rb腳本,建立集羣。ruby

 

 

部署方式:服務器

  在每一個服務節點上:app

  上傳:redis包tcp

  1.      解壓redis-4.0.10壓縮文件工具

  tar –xf redis-4.0.10.tar.gz性能

  2.      進入redis-4.0.10目錄,利用該目錄下的makefile進行編譯安裝測試

  cd redis-4.0.10

  make

  make install

  完成後,在/usr/local/bin目錄下會生成下面5個文件,因爲該目錄屬於環境變量路徑,在後面的操做中能夠直接使用這些文件而不須要再次指定目錄。

文件名

功能

redis-benchmark

性能測試工具

redis-check-aof

aof日誌文件檢測工具

redis-check-dump

rdb快照文件檢測工具

redis-cli

客戶端

redis-server

服務端

 

  3.      建立一個目錄,用於存放Redis服務器相關文件

  mkdir /home/redis

  4.      在該目錄下建立Redis配置文件

  cd /root/redis

  vi redis.conf

 

  redis.conf文件內容以下:

  port 6379

  bind (改成具體服務器地址)

  cluster-enabled yes

  cluster-config-file "node_6379.conf"     #多個集羣節點在一塊兒的話,必需要加端口號

  cluster-node-timeout 5000

  appendonly no

  dir "/root/redis"                           #集羣數據文件落地位置,儘可能放到大一點的目錄裏面

  pidfile "/root/redis/node_pid.pid"       #/root/redis/這個目錄要存在

  daemonize yes

 

 

安裝ruby

  在線安裝:# yum install ruby 

  離線安裝:# tar -zxvf ruby-2.4.1.tar.gz     #先下載ruby-2.5.1.tar.gz

       # ./configure –-prefix=/usr/local/ruby -prefix是將ruby安裝到指定目錄,也能夠自定義

       # make && make install    

       # ruby -v

 

安裝redis

  在線安裝:gem install redis

  離線安裝:gem install -l redis     #先下載redis-3.2.1.gem

 

啓動redis服務

  #redis-servce ./redis-6379.conf          #在redis配置文件的根目錄下啓動

 

添加防火牆端口

  #vim /etc/sysconfig/iptables

    -A INPUT -p tcp -m state --state NEW -m tcp --dport 6379 -j ACCEPT

    -A INPUT -p tcp -m state --state NEW -m tcp --dport 16379 -j ACCEPT

  redis集羣不只須要開通redis客戶端鏈接的端口,並且須要開通集羣總線端口;集羣總線端口爲redis客戶端鏈接的端口 + 10000
  如:redis端口爲6379,則集羣總線端口爲16379;故,全部服務器的點須要開通redis的客戶端鏈接端口和集羣總線端口

 

建立集羣

  經過上述步驟,在6個節點上分別啓動Redis服務,而後在其中安裝有Ruby的服務器節點上,運行Redis安裝包中解壓出來的集羣部署腳本redis-trib.rb

  redis-trib.rb create --replicas 1 具體服務器地址:6379 具體服務器地址:6379 具體服務器地址:6379 具體服務器地址:6379 具體服務器地址:6379 具體服務器地址:6379

       將上面命令中的具體服務器地址替換爲各個Redis服務節點的地址。腳本運行後,命令窗口中出現[OK] All 16384 slots covered,表明集羣建立成功。6個節點將會以三個主節點、三個從節點的形式運行,每一個從節點都會與其對應的主節點保持數據一致。

  注:集羣建立之後,修改配置須要從新建立集羣(從新建集羣的時候須要先刪除配置文件中的密碼,不然會執行不成功)

 

 

設置集羣密碼

在建立完集羣后,須要分別對每個節點設置相同的密碼。使用前面提到的/usr/local/bin目錄下的redis-cli訪問redis服務器,並熱更新密碼配置

  redis-cli –h 具體服務器地址 –p 6379

  > config set requirepass password                   #執行完須要輸入密碼執行master密碼設置

  > config set masterauth password

  > config rewrite

使用ctrl + c退出redis-cli。注意替換部分的節點地址和端口。password替換爲節點的實際訪問密碼。對集羣的6個節點均執行上面的命令,爲每一個節點都設置相同的密碼。

 

檢查

  #  redis-cli -h IP***** -c -p 6379         #-c集羣模式

  >set key值  value 

  >get  key值   或者   keys *查看全部值(這個只適合剛部署)

  查看集羣狀態:

  >cluster info       #查看集羣的狀態

  

  >cluster nodes     #查看集羣的節點關係

 

 

 

異常排查

啓動ruby腳本後,若建立集羣失敗,則

a) 將全部的redis服務所有停掉,先查看redis的進程id,能夠查看指定的pidfile查看進程id也可使用命令lsof -i:redis端口號查看進程,也可使用ps -ef | grep redis 來查看進程id,而後使用kill -9殺死該進程,關閉redis實例。

b) 將redis目錄下的nodes.conf和dump.rdb文件刪除

c) 修改redis.conf文件,去掉其中的密碼配置項requirepass和masterauth,使節點下次啓動時無需密碼便可訪問,以便創建集羣

d) 重啓每臺機器上的redis,而後再啓動ruby腳本,從新建立集羣

e) 執行3.8.3中的步驟,爲集羣設置密碼

相關文章
相關標籤/搜索