Redis集羣安裝配置node
爲了實現redis高可用性。使用三臺虛擬機來實現redis的集羣環境安裝redis
1.redis集羣架構圖算法
Redis版本 redis-4.0.2vim
三臺服務器:分別爲192.168.112.12八、192.168.112.12九、192.168.112.131ruby
2.軟件安裝服務器
1) tar -zxvf redis-4.0.2.tar.gz架構
2) cd redis-4.0.2app
3) make && make install工具
3.集羣環境安裝spa
1) 首先在192.168.112.128機器上 /opt/renzl/redis 目錄下建立 redis_cluster 目錄;
mkdir redis_cluster
2) 進入redis_cluster目錄,分別建立7000、7001兩個文件夾
mkdir 7000
3) 而後拷貝redis.conf文件到7000目錄下
cp /opt/renzl/redis-4.0.2/redis.conf /opt/renzl/redis
第一個路徑爲解壓路徑
第二個路徑爲redis安裝路徑
4) 別的機器所有執行以上命令或者在一臺機器配置完成經過scp命令複製,進行修改
5) 全部機器安裝完成後進行以下配置以192.168.112.128 7000爲例
vim /opt/renzl/redis/redis_cluster/7000/redis.conf
port 7000 //端口7000,
bind 192.168.112.128 //默認ip爲127.0.0.1 須要改成其餘節點機器可訪問的ip 不然建立集羣時沒法訪問對應的端口,沒法建立集羣
daemonize yes //redis後臺運行
pidfile /var/run/redis_7000.pid //pidfile文件對應7000,可選
cluster-enabled yes //開啓集羣 把註釋#去掉
cluster-config-file nodes_7000.conf //集羣的配置 配置文件首次啓動自動生成 7000
cluster-node-timeout 15000 //請求超時 默認15秒,可自行設置
appendonly yes //aof日誌開啓 有須要就開啓,它會每次寫操做都記錄一條日誌
6) 重複以上操做,直至全部的配置文件修改完成
7) 分別啓動redis服務
redis-server redis_cluster/7000/redis.conf //實際路徑本身調整
每臺機器的兩個端口啓動
8) 經過命令查看是否啓動成功
ps -ef | grep redis
正常啓動完成後,開始建立集羣
9) 建立集羣
Redis 官方提供了 redis-trib.rb 這個工具,就在解壓目錄的 src 目錄中,複製到一臺服務器上如:192.168.112.128
cp /opt/renzl/redis-4.0.2/src /opt/renzl/redis
10) 在執行命令前,須要安裝ruby 安裝過程忽略,可是必須安裝ruby2.2以上版本,不然在建立集羣時會提示版本有問題。
11) 經過命令來建立集羣環境
./redis-trib.rb create --replicas 1 192.168.112.128:7000(全部啓動的redis實例,使用空格隔開)
給定 redis-trib.rb 程序的命令是 create,表示建立一個新的集羣。選項 --replicas 1 表示爲集羣中的每一個主節點建立一個從節點。以後跟着的其餘參數則是實例的地址列表, 指定使用這些地址所指示的實例來建立新集羣。
12) 建立成功
「All 16384 slots covered.」表示集羣中的 16384 個槽都有至少一個主節點在處理, 集羣運做正常。從打印出來的信息也能夠看出,7000,7002,7004是主節點,其它三個是從節點。
13) 經過客戶端鏈接redis服務器
./redis-cli -h 192.168.112.128 -c -p 7000
加參數 -C 可鏈接到集羣,由於上面 redis.conf 將 bind 改成了ip地址,因此 -h 參數不能夠省略。
14) 集羣驗證
set name renzl
會用CRC16算法來取模獲得所屬的slot,而後將這個key 分到哈希槽區間的節點上,
若是這個時候能過命令來獲取將獲得以下變化:
鏈接會自動切換到192.168.112.131:7002上