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