Redis 在CentOS 6上的 安装和部署以及redis的主从复制sentinel实现HA
配置文件: /etc/redis-sentinel.conf vim /etc/redis-sentinel.confport 26379 //默认监听端口
# sentinel monitor //这项最重要,指明监控的master
sentinel monitor mymaster 10.0.0.6 6379 2
# Default is 30 seconds. //sentinel认为服务器不在线最少经过的秒数,判断某节点不在线的超时时间,默认为毫秒
sentinel down-after-milliseconds mymaster 30000
# sentinel parallel-syncs //指定了在执行故障转移时,最多可以有多少个从服务器对新主服务器进行同步
entinel parallel-syncs mymaster 1
# sentinel failover-timeout //故障转移超时时长,也就是说master故障时,把一个slave提升为master的最长时间
# Default is 3 minutes.
sentinel failover-timeout mymaster 180000
示例:三个节点(1个master节点,2 slave节点,1 sentinel)
node1:master 10.0.0.6
node2:slave 10.0.0.7
node3 : slave 10.0.0.8
在 node1, node2, node3安装redis(需要有epel源)
# yum -y install redis
在node1, node2, node3修改配置文件
# vim /etc/redis.conf
daemonizeyes //以守护进程的方式启动
bind 0.0.0.0 //监听在本机的所有地址
启动node1, node2,node3 redis,还没有设置主从复制
node1:
# redis-server /etc/redis.conf
# ss -tnl | grep redis-server
# ss -tnl | grep 6379
LISTEN 0 128 *:6379 *:*
# redis-cli
127.0.0.1:6379> INFO replication
# Replication
role:master
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
127.0.0.1:6379>
node2: //这个是CentOS 7下手动源码安装的 redis-4.0.10,这个没有没有影响
# redis-cli
127.0.0.1:6379> INFO replication
# Replication
role:master
connected_slaves:0
master_replid:6678af3be5f3af43963f5018fc767c8991945239
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
127.0.0.1:6379>
node3:
# redis-cli
127.0.0.1:6379> INFO replication
# Replication
role:master
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
127.0.0.1:6379>
设置主从:设置node2,node3为slave
node2:
> CONFIG SLAVEOF 10.0.0.6
node3:
> CONFIG SLAVEOF 10.0.0.8
验证主从:
node1:
# redis-cli
127.0.0.1:6379> INFO replication
# Replication
role:master //master
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
127.0.0.1:6379> INFO replication
# Replication
role:master
connected_slaves:2
slave0:ip=10.0.0.7,port=6379,state=online,offset=365,lag=1
slave1:ip=10.0.0.8,port=6379,state=online,offset=365,lag=0
master_repl_offset:365
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:364
127.0.0.1:6379>
node2:
# redis-cli
127.0.0.1:6379> SLAVEOF 10.0.0.6 6379
OK
127.0.0.1:6379> INFO replication
# Replication
role:slave //slave
master_host:10.0.0.6
master_port:6379
master_link_status:up
master_last_io_seconds_ago:5
master_sync_in_progress:0
slave_repl_offset:57
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:d1c08312fe30d1259d943f1a09bd7aa5b7bebf01
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:57
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:30
repl_backlog_histlen:28
127.0.0.1:6379>
node3:
# redis-cli
127.0.0.1:6379> SLAVEOF 10.0.0.6 6379
OK
127.0.0.1:6379> INFO replication
# Replication
role:slave //slave
master_host:10.0.0.6
master_port:6379
master_link_status:up
master_last_io_seconds_ago:6
master_sync_in_progress:0
slave_repl_offset:253
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
127.0.0.1:6379>
这样我们的主从复制就配置好了,为了进一步验证主从复制,我们在master上写入数据,查看下slave上面的数据情况
node1:
127.0.0.1:6379> SET cache memcached
OK
127.0.0.1:6379> GET cache
"memcached"
node2:
127.0.0.1:6379> GET cache
"memcached"
node3:
127.0.0.1:6379> GET cache
"memcached"
页:
[1]