1、環境準備 1)準備6台ubuntu虛擬機 2)配置好IP(192.168.1.36,192.168.1.37,192.168.1.38, 192.168.1.40,192.168.1.41,192.168.1.42 三台master 三台slave) 3)安裝好openssh-server 2、 ...
1、環境準備
1)準備6台ubuntu虛擬機
2)配置好IP(192.168.1.36,192.168.1.37,192.168.1.38, 192.168.1.40,192.168.1.41,192.168.1.42 三台master 三台slave)
3)安裝好openssh-server
2、下載redis http://redis.io/download 本次使用3.2.3版本redis-3.2.3.tar.gz
3、安裝redis
1)對目錄提權 sudo chmod -R 777 /opt/
2)拷貝redis-3.2.3.tar.gz到6台虛擬機下 如 /opt/
3)解壓redis-3.2.3.tar.gz
4)編譯redis 終端命令
cd redis-3.2.3/src
make
4、修改redis.config,修改後覆蓋6台虛擬機的redis.config,修改如下:
cluster-enabled yes //開啟集群
cluster-config-file nodes-6379.conf //節點配置信息
cluster-node-timeout 5000 //超時
cluster-slave-validity-factor 10 //slave 故障轉移次數
Cluster-migration-barrier 1 //最小slave數量
Cluster-require-full-coverage no //no 表示
appendonly yes //指定是否在每次更新操作後進行日誌記錄
appendfilename "appendonly.aof" //指定更新日誌文件名
logfile "/opt/redis-3.2.3/logs/redis-6379.log" //日誌記錄目錄 目錄不存在需先創建
bind 0.0.0.0 //允許遠程連接
5、啟動redis
$ cd redis-3.2.3/src
$ ./redis-server /opt/redis-3.2.3/redis.conf
6、驗證是否安裝成功
$ cd src
$ ./redis-cli
redis> set foo bar
OK
redis> get foo
"bar"
redis> del foo
(integer) 1
7、構建集群
1)選擇其中一臺安裝ruby,需要的情況每台都安裝一下
選擇一個下載源:ustc.edu.cn/ubuntu 測試最佳
sudo apt-get update
sudo apt-get install ruby (可能需要先sudo apt-get -f install)
gem install redis (可能需要授權sudo chmod -R 777 /var/)
2)構建集群
./redis-trib.rb create --replicas 1 192.168.1.36:6379 192.168.1.37:6379 192.168.1.38:6379 192.168.1.40:6379 192.168.1.41:6379 192.168.1.42:6379
檢查集群狀態
redis-trib.rb check 192.168.1.36:6379
(在測試的時候 發現一個問題 其中一臺機器的redis節點,構建的時候自己的ip不能在前面2個位置)
8、測試
集群下 遠程連接get set 必須帶-c
$ ./redis-cli -h 192.168.1.36 -p 6379 -c
測試結果:
1)在master1上set,可以在其他master上get,反之一樣
2)只down一臺master1,其從slave1會自動切換為master,當master1再次啟動,則變為slave了,角色互換
3)同down掉一臺master1和從slave1,則其他master和slave運行正常,但是 master1和從slave1的數據,無法獲取了,並且在其他master無法設置master1和從slave1所擁有的key值,當master1和從slave1再次啟動,則先啟動的master,後面的為slave
4)key第一次set在哪裡,後面會一直set在該master上?
附:
redis 遠程連接主機(192.168.1.36)
$ cd src
$ ./redis-cli -h 192.168.1.36 -p 6379
$ ./redis-cli -h 192.168.1.36 -p 6379 -a 123456 (帶密碼)
強制關閉redis
netstat –ntlp |grep 6379
kill -9 pid
//
刪除當前資料庫中的所有
Key
flushdb
//
刪除所有資料庫中的
key
flushall
刪除aof,rdb,conf 3個文件刪除
參考資料:
http://www.tuicool.com/articles/aQbQ3u
http://hot66hot.iteye.com/blog/2050676
www.cnblogs.com/yuanermen/p/5717885.html
http://blog.csdn.net/jthink_/article/details/50373959
http://www.freeteam.cn/site/FreeCMS/share/info/2016/5175.html
問題:都掛了,如何再次構建集群,數據是否還在,其中master和對應slave掛了 如何再次加入集群
192.168.1.43
RedisLive集群監控
sudo apt-get install python-pip
http://sofar.blog.51cto.com/353572/1369266/
http://blog.csdn.net/fengspg/article/details/51010011
redis-stat集群監控
http://my.oschina.net/guol/blog/182265?p=2&temp=1472112097074#blog-comments-list
http://www.tuicool.com/articles/ae6bUfN
需要安裝一臺redis 用於監測 不用更改redis.config (0.0.0.0)
sudo
apt-get install ruby
sudo apt-get install ruby-dev
sudo
gem install redis-stat
命令行顯示方式:
$
./redis-stat 172.168.63.201:7000 172.168.63.201:7001 5
web界面方式:
$
./redis-stat 172.168.63.201:7000 172.168.63.201:7001 –server=8080
10--daemon
說明:表示每個10秒列印一次信息,--daemon表示在後臺掛起執行;
127.0.0.1:8080
如果你運行的操作是Windows,那麼只能在JRuby上安裝redis-stat。需要註意的是,Windows的預設命令提示符下,終端顏色不能夠被很好的支持。