redis---主从模式与哨兵模式的搭建

 1、下载
wget http://download.redis.io/releases/redis-4.0.8.tar.gz
  或者curl;本地化安装
  
2、解压:
tar xzvf redis-4.0.8.tar.gz
3、make编译.c文件
cd redis-4.0.8
make
 
三台机器或者一台机器上三个redis实例。
分别为A,B,C机器。
A:  172.16.5.163
B:  172.16.1.163
C:  172.16.5.101
 以上操作在三台机器上同样的操作。就算是安装好redis。
 
 

 
 
4.、修改A机器上的conf配置文件,去掉无用注释
cat sentinel.conf | grep -v "#" | grep -v "^$" > sentinel-26379.conf
 
 
cat redis.conf | grep -v "#" | grep -v "^$" > redis-6379.conf
 
rm -rf sentinel.conf redis.conf
 
mv sentinel-26379.conf sentinel.conf mv redis-6379.conf redis.conf
 
 
redis.conf 配置如下红框,其他不用修改保持默认
 

 

配置主从模式

5、把A机器上的redis.conf文件复制到B,C机器上。直接覆盖B、C实例中已经存在的文件
 
 
6、启动三台redis实例
src/redis-server  ./redis.conf
 
7、建立主从模式
# 在B机器上执行
src/redis-cli -p 6379 SLAVEOF 172.16.5.163 6379

# 在C机器上执行
src/redis-cli -p 6379 SLAVEOF 172.16.5.163 6379
 
8、查看主从模式是否建立
# 分别在三台机器上登陆客户端
src/redis-cli
 
  • A机器显示:
> set name sunhan
显示:OK
> info replication
显示:role:master
  • B机器显示:
 
  • C机器显示:

到这里主从模式成功
 
 

配置哨兵模式

9、配置sentinel.conf文件

vim sentinel.conf 
# 查看文件下面的配置字段有没有 port、bind、daemonize、protected-mode这四个字段一定要如下面配置
port 26379 
bind 0.0.0.0
daemonize yes
protected-mode no
sentinel monitor mymaster 172.16.5.163(A机器的IP) 6379 2
sentinel config-epoch mymaster 1
sentinel leader-epoch mymaster 1
sentiinel.conf文件 中以上字段在A、B、C机器配置的都是相同的
 
# 分别在三台机器启动哨兵进程
src/redis-sentinel ./sentiinel.conf
 10、监控哨兵集群是否生效
 
# 分别在三台机器查看sentinel集群信息
src/redis-ci -p 26379
> info sentinel
127.0.0.1:26379> info sentinel
## 显示:
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=172.16.5.163:6379,slaves=2,sentinels=3
 
*******************以上哨兵模式搭建完成:**********
 
11、模拟哨兵模式下master宕机
 
## 这时候连接A机器上redis实例,进行关闭A机器上的redis进程
src/redis-cli shutdown

  • 值得注意的是不能使用 pkill -9 redis  这样会把该redis实例下面中的sentinel进程也杀掉
  • sentinel进程与redis进程不是一个进程,redis-work主线程宕机了,sentinel进程也不一定会宕机的
  • redis-work与sentinel它们是相互独立的进程
  • 这也意味着sentinel可以不依赖redis安装包下sentinel完全可以在别的服务器、或者额外的实例下进行搭建sentinel集群
 
12、测试failover机制
 
## 过了10秒中左右,在B机器上查看当前redis主从信息:
src/redis-cli 
> info replicatioon
 
 
这时候B机器已经变成master节点了。试一下是否可以进行set操作
 
 
这说明redis主从已经切换过来了,因为只有主服务才可以set操作。failover成功!
 
 
finally以前的master恢复服务后结果如何,数据一致性是否安全
 
 
## 如果以后A机器重新启动了,A服务器曾经的王者 只能变成slaveof从节点做小弟了。
 
 

猜你喜欢

转载自www.cnblogs.com/han-sun/p/12527379.html