乐趣区

关于redis:虚拟机搭建1主1从redis主从集群搭建

场景

redis 作为以后煊赫一时的 NOSQL 零碎,自身就反对主从集群,基于虚拟机入手搭建一个 1 主 1 从的 redis 集群 (哨兵模式)。
redis 集群(redis cluster) 次要是解决单机数据存储问题,redis 集群将数据分布式存储与多台机器上。然而很多状况下,在小用户公司机器不容许的状况下,咱们多采纳 redis 主从 - 哨兵模式。

搭建

1、环境筹备

这里应用 2 台服务器,每台服务器上开启一个 redis-server 和 redis-sentinel 服务,redis-server 端口为 7001,redis-sentinel 的端口为 6001。

redis-server 阐明

  • 192.168.1.110:7001 主
  • 192.168.1.111:7001 从

redis-sentinel 阐明

  • 192.168.1.110:6001
  • 192.168.1.111:6001

2、搭建 redis 零碎

先在三台机器上装置 redis,具体步骤可参考虚拟机 - 搭建 3 主 3 从 redis 集群

装置实现后复制 redis 提供的默认配置文件

cp /usr/src/redis-4.0.1/redis.conf /usr/local/redis

批改配置文件

cd /usr/local/redis  
vim redis.conf  

主节点 192.168.1.110 上的配置

bind 192.168.1.100 //(留神:bind 的意思不是绑定内部服务器的 IP,而是绑定本机能够承受拜访的 IP)
port 7001 
daemonize yes  // 后盾过程
requirepass 123456
pidfile redis_7001.pid 
loglevel notice
logfile "/usr/local/redis/redis_7001.log" // 日志文件寄存目录  
dir /usr/local/redis/    // 节点主目录寄存地位    

appendonly yes
dbfilename dump.rdb
appendfilename "appendonly.aof"
appendfsync everysec

从节点 192.168.1.111 上的配置

bind 192.168.1.111 //(留神:bind 的意思不是绑定内部服务器的 IP,而是绑定本机能够承受拜访的 IP)
port 7001 
daemonize yes  // 后盾过程
requirepass 123456
pidfile redis_7001.pid 
loglevel notice
logfile "/usr/local/redis/redis_7001.log" // 日志文件寄存目录  
dir /usr/local/redis/    // 节点主目录寄存地位    

#额定补充
masterauth 123456
slaveof  192.168.1.110 7001

appendonly yes
dbfilename dump.rdb
appendfilename "appendonly.aof"
appendfsync everysec

启动 2 台机器:

./bin/redis-server ./redis.conf

edis 服务启动结束后,进入命令行,执行 info replication 查看以后主从配置

如果如上图所示没有发现从节点,很有可能是防火墙没有凋谢 7001 端口导致主从节点之间没法通信.

执行以下命令:

firewall-cmd --zone=public --add-port=8000/tcp --permanent
firewall-cmd --zone=public --add-port=6800/tcp --permanent
firewall-cmd --reload

从新查看主从信息:

3、搭建 redis-sentinel 零碎

首先复制默认的配置文件并批改

cp /usr/src/redis-4.0.1/redis.conf /usr/local/redis  
vim /usr/local/redis/sentinel.conf

内容如下:

protected-mode no
daemonize yes
port  6001
sentinel monitor mymaster 192.168.1.110 7001 1
sentinel auth-pass mymaster 123456
#5 秒内 master6800 没有响应,就认为 SDOWN
sentinel down-after-milliseconds mymaster 5000 
sentinel failover-timeout mymaster 15000
logfile  /var/log/redis/sentinel.log
pidfile  /var/run/sentinel.pid

启动 redis-sentinel

./bin/redis-sentinel ./sentinel.conf

二、测试

1、主从复制测试

主节点增加数据:

从节点获取数据

2、故障转移测试

停掉主节点

查看 redis 集群信息

从节点 192.168.1.112 降级为主节点

退出移动版