Redis
集群必须为奇数 整体同步为整体 快照
同步以后一个个数据同步 内存存放数据
当两个slave有master down以后进行master切换高可用
[root@server2 redis-4.0.8]# ls
00-RELEASENOTES BUGS CONTRIBUTING COPYING deps INSTALL Makefile MANIFESTO README.md redis.conf runtest runtest-cluster runtest-sentinel sentinel.conf src tests utils
[root@server2 redis-4.0.8]# yum install gcc -y
[root@server2 redis-4.0.8]# make
cd src && make all
[root@server2 redis-4.0.8]# make install
cd src && make install
make[1]: Entering directory `/root/redis-4.0.8/src'
[root@server2 redis-4.0.8]# ls
00-RELEASENOTES BUGS CONTRIBUTING COPYING deps INSTALL Makefile MANIFESTO README.md redis.conf runtest runtest-cluster runtest-sentinel sentinel.conf src tests utils
[root@server2 redis-4.0.8]# cd utils/
[root@server2 utils]# ls
build-static-symbols.tcl corrupt_rdb.c generate-command-help.rb hashtable install_server.sh redis-copy.rb redis_init_script.tpl releasetools whatisdoing.sh
cluster_fail_time.tcl create-cluster graphs hyperloglog lru redis_init_script redis-sha1.rb speed-regression.tcl
[root@server2 utils]# ./install_server.sh
一直enter
[root@server2 utils]# netstat -antlp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 7161/redis-server 1
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 884/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1548/master
tcp 0 0 172.25.77.2:22 172.25.77.250:58821 ESTABLISHED 3245/sshd
tcp 0 0 :::22 :::* LISTEN 884/sshd
tcp 0 0 ::1:25 :::* LISTEN 1548/master
tcp 0 0 :::3306 :::* LISTEN 3770/mysqld
tcp 0 0 ::ffff:172.25.77.2:3306 ::ffff:172.25.77.1:39835 ESTABLISHED 3770/mysqld
tcp 0 0 ::ffff:172.25.77.2:3306 ::ffff:172.25.77.3:51449 ESTABLISHED 3770/mysqld
[root@server2 utils]# vim /etc/redis/6379.conf
修改
[root@server2 utils]# /etc/init.d/redis_6379 stop
Stopping ...
Redis stopped
[root@server2 utils]# /etc/init.d/redis_6379 start
Starting Redis server...
[root@server2 utils]# vim /etc/redis/6379.conf
slaveof 172.25.77.1 6379
[root@server2 utils]# /etc/init.d/redis_6379 restart
Stopping ...
Redis stopped
Starting Redis server...
[root@server2 utils]# redis-cli
127.0.0.1:6379> get name
"wxh"
127.0.0.1:6379> get name2
"westos"
[root@server1 masterha]# which redis-cli
/usr/local/bin/redis-cli
[root@server1 redis]# vim /etc/redis/sentinel.conf
15 # bind 127.0.0.1 192.168.1.1
16 bind 0.0.0.0
17 #
18 protected-mode no
19
20 # port <sentinel-port>
21 # The port that this sentinel instance will run on
22 port 26379
23
98 # Default is 30 seconds.
99 sentinel monitor mymaster 172.25.77.1 6379 2 设置 一个主机为1当一个同步就有一个server不能用
107 sentinel down-after-milliseconds mymaster 10000
[root@server1 redis]# scp sentinel.conf server2:/etc/redis/
sentinel.conf 100% 7619 7.4KB/s 00:00
[root@server1 redis]# scp sentinel.conf server3:/etc/redis/
sentinel.conf 100% 7619 7.4KB/s 00:00
[root@server1 redis]# pwd
/etc/redis
[root@server1 redis]# ls
6379.conf sentinel.conf
[root@server1 redis]# redis-server /etc/redis/sentinel.conf --sentinel
16297:X 11 Aug 17:13:57.041 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
16297:X 11 Aug 17:13:57.041 # Redis version=4.0.8, bits=64, commit=00000000, modified=0, pid=16297, just started
16297:X 11 Aug 17:13:57.041 # Configuration loaded
[root@server3 ~]# redis-cli
127.0.0.1:6379> info
127.0.0.1:6379> SHUTDOWN
not connected> quit
[root@server1 redis]# redis-server /etc/redis/sentinel.conf --sentinel
[root@server2 ~]# redis-server /etc/redis/sentinel.conf --sentinel
7241:X 11 Aug 17:18:24.803 # +sdown sentinel 935ca54503744bc3f5167d02d4b1f6a2c4ddc1e0 172.25.77.3 26379 @ mymaster 172.25.77.1 6379
7241:X 11 Aug 17:19:29.741 # +sdown slave 172.25.77.3:6379 172.25.77.3 6379 @ mymaster 172.25.77.1 6379
[root@server3 ~]# /etc/init.d/redis_6379 start
/var/run/redis_6379.pid exists, process is already running or crashed
[root@server1 redis]# redis-server /etc/redis/sentinel.conf --sentinel
16297:X 11 Aug 17:23:40.117 * +reboot slave 172.25.77.3:6379 172.25.77.3 6379 @ mymaster 172.25.77.1 6379
16297:X 11 Aug 17:23:40.192 # -sdown slave 172.25.77.3:6379 172.25.77.3 6379 @ mymaster 172.25.77.1 6379
[root@server2 ~]# redis-cli
127.0.0.1:6379> info
# Replication
role:slave
master_host:172.25.77.1
master_port:6379
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:70380
slave_priority:100
slave_read_only:1
connected_slaves:0
[root@server1 ~]# redis-cli
127.0.0.1:6379> info
# Replication
role:master
connected_slaves:2
slave0:ip=172.25.77.2,port=6379,state=online,offset=89236,lag=0
slave1:ip=172.25.77.3,port=6379,state=online,offset=89236,lag=1
master_replid:eeb67dc53d151860e97f21a3c70f7e3441a05a4b
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:89236
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:89236