主从架构,如果主节点挂了,需要运维人员手动处理,重写配置主节点。
哨兵架构可以可以解决这个问题, 当主节点挂了之后,哨兵会自动的选举一个节点当作主节点。
sentinel哨兵是图书的redis服务,不提供读写服务,主要用过来监控redis实例节点。
哨兵架构下client端第一次从哨兵找出redis主节点,后续就支持访问redis的主节点,不会每次都通过sentinel代理访问reids主节点,当redis主节点发送变化,哨兵会第一时间感知到,并且将新的redis主节点通知给client端,redis client端订阅了sentinel发布的节点变更消息。
架构搭建-搭建右边的主从架构
1. 按照搭建主从架构的的步骤,再copy一个config 文件出来redis.conf_2
cd /home/allen/packages/redis-5.0.3/conf
cp redis.conf_1 redis.conf_2
2. 修改redis.config_2的内容
port 6381 #修改端口号,代表本机另外一台机器
pidfile /var/run/redis_6381.pid #把pid写入到该文件中
logfile "6381.log" #log的地址和文件
dir /home/allen/packages/redis-5.0.3/6381 #知道数据存放的目录
replicaof 127.0.0.1 6379 #本机从6379那台机器上获取数据 5.0之后改成slaveof
replica-read-only yes #配置从节点只读
3. 创建数据存放的目录
mkdir /home/allen/packages/redis-5.0.3/6381
4. 启动这个新节点
src/redis-server conf/redis.conf_2 &
如下,我们已经完成下面的架构:
[allen@localhost conf]$ ps -ef| grep redis
allen 25604 17775 0 05:11 pts/3 00:00:09 src/redis-server *:6379
allen 25636 17807 0 05:12 pts/4 00:00:08 src/redis-server 127.0.0.1:6380
allen 25665 17807 0 05:13 pts/4 00:00:08 src/redis-server 127.0.0.1:6381
allen 26384 17807 0 06:24 pts/4 00: