redis叢集部署文件
1. 安裝redis客戶端
1.1下載並解壓
cd /home
wget http://download.redis.io/releases/redis-3.2.4.tar.gz
tar -zxvf redis-3.2.4.tar.gz
1.2 編譯安裝
cd redis-3.2.4
make && make install
1.3 建立redis軟連線
cd src
cp redis-trib.rb /usr/local/bin/
1.4 安裝redis rurb
yum -y install ruby ruby-devel rubygems rpm-build
gem install redis
Ps:如果提示ruby >=2.2.2 則需要升級ruby版本,我們公司的映象基本都需要升級。
升級步驟:
bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
source ~/.rvm/scripts/rvm
查詢已安裝版本
rvm list
查詢版本列表
rvm listrvm list known
安裝一個2.2.2以上的ruby版本
rvm install 2.2.3
使用新版本的ruby
rvm use 2.2.3
設定為預設版本
rvm use 2.2.3 --default
移除之前的版本
rvm remove 1.x.x
執行完成後 再重複執行1.4的步驟
2.叢集配置準備
cd /home/redis-3.2.4
mkdir cluster
cd cluster/
mkdir 9100 9101 9102
cp redis.conf redis_cluster/9100
cd 9100/
mv redis.conf redis_9100.conf
cp redis.conf redis_cluster/9101
cd 9101/
mv redis.conf redis_9101.conf
cp redis.conf redis_cluster/9102
cd 9102/
mv redis.conf redis_9102.conf
同理第二臺上建立9103 9104 9105 3個節點配置
修改每個節點的配置(以修改redis_9100.conf為例子)
vi redis_9100.conf
修改如下幾點的配置:
- port修改為 9100
- pidfile 修改為:/var/run/redis_9100.pid
- logfile 修改為"/home/redis/redis-3.2.9/log/redis_9100.log"
- dbfilename修改為 dump_9100.rdb
5.appendfilename修改為 “appendonly_9100.aof”
- cluster-config-file 修改為nodes_9100.conf
- bind將繫結ip127.0.0,1修改為本機內網ip
- daemonize 修改為 yes
- yescluster-enabled yes //開啟叢集模式 把註釋#去掉
- cluster-node-timeout 1000 //請求超時時間
- appendonly yes //開啟aof同步日誌
- cluster-migration-barrier 2 //設定最小節點數,2臺裝置做叢集寫2,4臺設定做叢集 這裡寫4 以此類推。截圖是4臺裝置做的叢集的配置
所有節點配置檔案都需要完成以上12個步驟。
3.啟動redis叢集
完成2步驟,設定完所有節點配置後,進入不同的伺服器上分別啟動所有節點。(以啟動1臺為例)命令:
cd /home/redis/redis-3.2.9/src
./redis-server …/cluster/9103/redis_9103.conf
./redis-server …/conf/redis_9101.conf
./redis-server …/conf/redis_9102.conf
./redis-server …/cluster/9100/redis_9100.conf
執行完成後檢查每臺是否啟動了redis節點,命令:
ps -ef|grep redis
每臺裝置的節點全部啟動完成,檢查後,用以為命令啟動redis叢集:
cd /home/redis/redis-3.2.9/src
./redis-trib.rb create --replicas 1 172.16.40.73:9100 172.16.40.73:9101 172.16.40.73:9102 172.16.40.74:9103 172.16.40.74:9104 172.16.40.74:9105
===================================================================================
cd /home/redis/redis-3.2.9/src
./redis-trib.rb create --replicas 1 172.16.38.194:9100 172.16.38.194:9101 172.16.38.194:9102 172.16.38.194:9112 172.16.38.195:9103 172.16.38.195:9104 172.16.38.195:9105 172.16.38.195:9113
(如果是4臺的叢集:將–replicas 1改為–replicas 3)
- 驗證redis叢集
cd /home/redis/redis-3.2.9/src
./redis-cli -h 172.16.40.73 -p 9100 -c
./redis-cli -h 172.16.38.195 -p 9103 -c //-c的意思為叢集模式進入節點,如果沒有叢集啟動進入不了
set a 1 //驗證叢集是否可以插入資料
get a 1 //驗證叢集是否可以獲取資料
./redis-cli -h 172.16.35.178 -p 6440
cluster info //檢查叢集情況 cluster_state為ok則代表叢集正常
cluster nodes //檢視叢集節點情況,如果有掛掉的節點,這上面會顯示fail
./redis-cli -h 172.16.35.178 -p 6440
./redis-cli -h 172.16.38.194 -p 9100 -c
修改節點配置檔案的慢查詢時長
slowlog-log-slower-than 10000
清空慢查詢日誌
config set slowlog-log-slower-than 200000
config rewrite
重置日誌
slowlog reset
查詢慢查詢日誌
slowlog get