linux redis集羣

linux redis集羣


從項目到部署服務器的過程,畢竟些寫項目是爲了發佈部署服務器。本篇主要介紹linux redis集羣,後面幾篇文章將會介紹:


步驟:

主要以截圖爲主,複雜的操作,會以文字說明。按照步驟一步一步來操作就可以了。


1. 使用winscp把redis-4.0.0.tar.gz上傳到linux的/usr/local/src目錄下

2. 使用Putty遠程登錄,輸入用戶名密碼,登錄linux。進入目錄,解壓

cd /usr/local/src   #進入目錄
ls  		#查看
tar -zxvf redis-4.0.0.tar.gz #解壓

3. 進入解壓過的目錄redis-4.0.0目錄, 安裝到指定目錄,

如 /usr/local/redis
make PREFIX=/usr/local/redis install

#先創建/usr/local/redis 目錄
mkdir /usr/local/redis

cd /usr/local/src/redis-4.0.0    #進入目錄
 
make PREFIX=/usr/local/redis install  #安裝到/usr/local/redis

4.拷貝目錄/usr/local/src/redis-4.0.0下文件redis.conf到 /usr/loca/reids 下.

目錄下有 bin和redis.conf

 cp redis.conf /usr/local/redis

 cd /usr/local/redis

ll

5.拷貝目錄/usr/local/redis/bin下文件redis-cli ,redis-server到 /usr/loca/reids 下.

 cp /usr/local/redis/bin/redis-cli redis-server /usr/local/redis/
cd /usr/local/redis
ll

6.創建redis-cluster文件夾,文件夾/usr/local/redis 複製三份/usr/local/redis-cluster/redis7001,/usr/local/redis-cluster/redis7002,/usr/local/redis-cluster/redis7003到機器1上, 複製三份/usr/local/rediscluster/redis7004,/usr/local/redis-cluster/redis7005,/usr/local/redis-cluster/redis7006到機器2上

#機器1
 cp /usr/local/redis /usr/local/redis-cluster/redis7001
 cp /usr/local/redis /usr/local/redis-cluster/redis7002
  cp /usr/local/redis /usr/local/redis-cluster/redis7003


#機器2
 cp /usr/local/redis /usr/local/redis-cluster/redis7004
 cp /usr/local/redis /usr/local/redis-cluster/redis7005
  cp /usr/local/redis /usr/local/redis-cluster/redis7006

7.修改配置文件,分別修改redis7001-7006各個文件的配置文件

port  7001                                        //端口7001-7006     
bind 本機ip                                       //默認ip爲127.0.0.1 需要改爲其他節點機器可訪問的ip 否則創建集羣時無法訪問對應的端口,無法創建集羣
daemonize    yes                               //redis後臺運行
pidfile  /usr/local/redis-cluster/redis_7001.pid          //pidfile文件對應7001-7006 
cluster-enabled  yes                           //開啓集羣  把註釋#去掉
cluster-config-file  nodes_7001.conf   //集羣的配置  配置文件首次啓動自動生成 7001-7006 
cluster-node-timeout  15000                //請求超時  默認15秒,可自行設置
appendonly  yes                           //aof日誌開啓  有需要就開啓,它會每次寫操作都記錄一條日誌

8,啓動redis,查看狀態

#啓動機器1上三個redis
/usr/local/redis-cluster/redis7001/redis-server  /usr/local/redis-cluster/redis7001/redis.conf
/usr/local/redis-cluster/redis7002/redis-server  /usr/local/redis-cluster/redis7002/redis.conf
/usr/local/redis-cluster/redis7003/redis-server  /usr/local/redis-cluster/redis7003/redis.conf

#啓動機器2上三個redis
/usr/local/redis-cluster/redis7004/redis-server /usr/local/redis-cluster/redis7004/redis.conf
/usr/local/redis-cluster/redis7005/redis-server /usr/local/redis-cluster/redis7005/redis.conf
/usr/local/redis-cluster/redis7006/redis-server /usr/local/redis-cluster/redis7006/redis.conf

#查看狀態
ps -ef | grep redis

9,創建集羣

Redis 官方提供了 redis-trib.rb 這個工具,就在解壓目錄的 src 目錄中,第三步中已將它複製到 /usr/local/bin 目錄中,可以直接在命令行中使用了。使用下面這個命令即可完成安裝。

#這個工具是用 ruby 實現的,所以需要安裝 ruby,如果失敗,可以手動安裝
yum -y install ruby ruby-devel rubygems rpm-build
gem install redis

#集羣命令
./redis-trib.rb  create  --replicas  1   172.17.201.210:7001  172.17.201.210:7002 172.17.201.210:7003  172.17.201.212:7004  172.17.201.212:7005 172.17.201.212:7006

10,驗證集羣

在第一臺機器上連接集羣的7002端口的節點,在另外一臺連接7005節點,連接方式爲 redis-cli -h 192.168.31.245 -c -p 7002 ,加參數 -C 可連接到集羣,因爲上面 redis.conf 將 bind 改爲了ip地址,所以 -h 參數不可以省略。

#客戶端7002
/usr/local/redis-cluster/redis7002/redis-cli -h xxx.xxx.xxx.xxx -c -p 7002

#7002設置值
set hello world 

#7005查看
get hello

遇到問題

問題1

redis創建集羣時顯示錯誤: [ERR] Node xxx is not empty. Either the node already knows other no…
[ERR] Node 172.168.63.202:7001 is not empty. Either the nodealready knows other nodes (check with CLUSTER NODES) or contains some

#刪除每個redis節點的備份文件,數據庫文件和集羣配置文件
#那麼每個節點中的appendonly.aof、dump.rdb、node_xxx.conf文件都要被刪除
#使用redis-cli -c -h -p登錄每個redis節點,使用以下命令
flushdb
cluster reset


問題2

redis-3.0.0.gem安裝不了

#網上下載一個redis-3.0.0.gem,手動安裝
gem install --local redis-3.0.0.gem

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章