情况1:单台服务器配置redis主从,如果是单台服务器配置的redis主从,服务器挂掉会导致整个redis不可使用,配置主从的时候需要更换从redis的端口值。
情况2:多台服务器配置redis主从,多台服务器配置主从,好处在于一台服务器挂掉并不会影响redis主从使用。
本文介绍单台服务器本地配置redis主从,以下步骤
1、找到redis.conf 配置位置,复制一份配置命名随意
cp /usr/local/etc/redis.conf /usr/local/etc/redis_slave.conf
2、修改redis_slave.conf 配置:
##修改端口 port 6378 ##配置主redis slaveof 127.0.0.1 6379
3、先启动主redis服务,再启动从redis服务
#启动主redis redis-server ##启动从redis redis-server redis_slave.conf
成功时会出现提示:
1492:M 27 Jun 2019 17:19:19.735 * Synchronization with replica 127.0.0.1:6378 succeeded
主从配置成功redis会自动复制数据到从redis. 注意:当主从起来后,主节点可读写,从节点只可读不可写
二、Sentinel 哨兵配置解释:哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。
哨兵模式:分单一哨兵和多哨兵模式
本文介绍多哨兵配置:
1、高版本的redis下载的时候自带了哨兵模式,找到配置文件 redis-sentinel.conf 编译安装的可能是叫 sentinel.conf 都一样
同一台服务器要更改哨兵端口号
注意:外网使用的时候
redis.conf 中 protected-mode配置,默认是yes,即开启。设置外部网络连接redis服务,设置方式如下:
关闭protected-mode模式,此时外部网络可以直接访问
开启protected-mode保护模式,需配置bind ip或者设置访问密码
打开redis-sentinel.conf配置有几个值:
##监听主redis的配置 ##监控主节点的IP地址端口,sentinel监控的master的名字叫做mymaster,2代表,当集群中有2个sentinel认为master死了时,才能真正认为该master已经不可用了 sentinel monitor mymaster 127.0.0.1 6379 2 ##如果配置了密码打开下面的注释写上密码 格式: sentinel auth-pass mymaster 12345678 # sentinel auth-pass
2、更改好之后复制2份做3个哨兵服务
cp redis-sentinel.conf redis-sentinel-26380.conf cp redis-sentinel.conf redis-sentinel-26381.conf
3、更改哨兵的配置端口
将三个文件的端口改成: port 26379 port 26380 port 26381
4、启动哨兵服务
redis-sentinel redis-sentinel.conf redis-sentinel redis-sentinel-26380.conf redis-sentinel redis-sentinel-26381.conf
查看一下服务:ps -fe |grep "redis"
链接主redis
看一下主从redis的数据,很棒主从数据同步的。
第二步测试,停掉主redis的运行
等上几秒钟,看一下我们的哨兵干了啥
切换了主从redis的服务。
那么在从刚刚的端口查一下数据看看能不能查到,嗯?? 挂掉了,也就是说虽然切换了主从但是redis链接方式并没有变,所以是要链接6378
续:重新启动redis 6379 变成从服务器redis。
本章结束,下章看一下主从及其哨兵在php中的使用
借鉴文章:https://www.jianshu.com/p/06ab9daf921d
https://www.cnblogs.com/leeSmall/p/8398401.html