0.集羣架構(此處只說兩種;本文2種,避免sentinel成爲單節點)
第一種:
第二種:
1.下載redis2.8.x版本,2.8.x都是穩定版linux
redis-2.8.24.tar.gz
2.解壓,安裝
tar -zxvf
redis-2.8.24.tar.gz -C /opt
make
make install
#編譯的2進制文件在解壓目錄src下,爲了方便把編譯的二進制文件和配置文件複製到一塊兒,不用每次找了
#搭建1 Master 2個Slave的分片集羣(一臺機器上)
mkdir -p /opt/redis-share1/{redis-6379,redis-6380,redis-6381}
#建立多級目錄
cd /opt/redis-2.8.24
cp runtest
/opt/redis-share1/
redis-6379
cp runtest-sentinel
/opt/redis-share1/
redis-6379
cp redis.conf
/opt/redis-share1/
redis-6379
cp sentinel.conf
/opt/redis-share1/
redis-6379
cd
/opt/redis-2.8.24/src
cp redis-benchmark
/opt/redis-share1/
redis-6379
cp redis-check-aof
/opt/redis-share1/
redis-6379
cp redis-check-dump
/opt/redis-share1/
redis-6379
cp redis-cli
/opt/redis-share1/
redis-6379
cp redis-sentinel
/opt/redis-share1/
redis-6379
cp redis-server
/opt/redis-share1/
redis-6379
cd
/opt/redis-share1/
redis-6379/
cp *
/opt/redis-share1/
redis-6380
cp *
/opt/redis-share1/
redis-6381
3.修改配置文件
搜索slaveof,添加一項
slaveof 127.0.0.1 6379
(master不須要此項,slave指定主節點)
masterauth 123456
(不想設置密碼不用)
requirepass 123456
(不想設置密碼不用)
daemonize yes
修改成yes讓其能夠後臺啓動,不至於關閉控制檯redis就關了
pidfile /opt/redis-share1/redis-6381/redis.pid
由於在同一臺機器咱們必須制定每一個redis實例pid單獨的位置
port 6379
#若干3個實例在3臺服務器能夠不用改,我這裏在一臺機器,因此分別6379 6380 6381
4.啓動Sentinel Master Slave(紅色是不用sentinel)
先啓動Master 6379
cd /opt/redis-share1/redis-6379
./redis-server redis.conf
./redis-server redis.conf
--sentinel
#
第二種方式,
這種方式須要先修改sentinel.conf配置文件
再啓動Slave1
cd /opt/redis-share1/redis-6380
./redis-server redis.conf
./
redis-cli slaveof 172.29.1.102 6379
#把從節點告知主節點
./redis-server redis.conf
--sentinel
#
第二種方式,
這種方式須要先修改sentinel.conf配置文件
啓動slave2
cd /opt/redis-share1/redis-6381
./redis-server redis.conf
./
redis-cli slaveof 172.29.1.102 6379
#把從節點告知主節點
./redis-server redis.conf
--sentinel
#
第二種方式,
這種方式須要先修改sentinel.conf配置文件
#查看副本信息
./redis-cli -h 127.0.0.1 -p 6379 -a 123456 info replication
./redis-cli -h 127.0.0.1 -p 6380 -a 123456 info replication
./redis-cli -h 127.0.0.1 -p 6381 -a 123456 info replication
若是是第一種方式:
再啓動Sentinel服務器:
cd /opt/redis-Sentinel/redis
./redis-server sentinel.conf --sentinel &
#不帶sentinel啓動方式查看驗證主從複製
./redis-server redis.conf
#查看節點信息帶密碼
主:
./redis-cli -h 127.0.0.1 -p 6379 -a 123456 info replication
從:
./redis-cli -h 127.0.0.1 -p 6380 -a 123456 info replication
./redis-cli -h 127.0.0.1 -p 6381 -a 123456 info replication
#的是主從複製
./redis-cli -h 127.0.0.1 -p 6379 -a 123456
>set aa 123
>get aa
./redis-cli -h 127.0.0.1 -p 6380 -a 123456
>get aa
./redis-cli -h 127.0.0.1 -p 6381 -a 123456
>get aa
#Sentinel mode:
kill -9 $(ps -ef|grep -E 'redis'|grep -v grep|awk '{print $2}')
#殺掉全部redis,已sentinel啓動
#分別進入3個redis
./redis-server sentinel.conf --sentinel
./redis-server sentinel.conf --sentinel
./redis-server sentinel.conf --sentinel
#測試Master掛了之後是否slave升級爲Master
./redis-sentinel sentinel.conf
#監控redis節點狀況
#Master和Slave配置
#master
port 26379
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds mymaster 30000
sentinel failover-timeout mymaster 900000
sentinel can-failover mymaster yes
sentinel parallel-syncs mymaster 1
#slaeve
port 26479
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds mymaster 30000
sentinel failover-timeout mymaster 900000
sentinel can-failover mymaster yes
sentinel parallel-syncs mymaster 1
#slave
port 26579
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds mymaster 30000
sentinel failover-timeout mymaster 900000
sentinel can-failover mymaster yes
sentinel parallel-syncs mymaster 1
參考:http://blog.csdn.net/luyee2010/article/details/9385155
參考:http://www.linuxidc.com/Linux/2013-11/92287.htm