Redis学习笔记-单机部署redis主从复制以及哨兵模式
为什么要使用redis集群?
我们在生产环境中,一般重要的项目不会使用单机模式。因为一旦挂了。可能系统就崩掉了。或者一台服务器挂掉了。也就不能用了。为了保证系统的高可用。我们会使用redis集群来保证。就算一台redis挂了。马上会有新的redis来顶上来。
怎样来使用redis集群了?
redis集群配置很简单。在配置文件里面写的很详细。 有两种方式来设置主机和从机 默认启动redis服务会自动是主机 如果配置文件里面有slaveof 就会自动设置自己为从机 来连接到主机上面去 。同时在命令行模式下也可以执行slaveof命令。但是重启服务后自动失效。
# slaveof <masterip> <masterport> #设置主机地址以及端口号 # masterauth <master-password> # 设置主机密码 如果没有密码可以不设置 slave-read-only yes #从机是否只能读
从网上找了一个详细配置的解读。
redis配置都比较简单,都写的比较详细。
我们现在来配置三个redis服务器
-
首先第一台redis服务我们来绑定6379端口号 第二个服务我们绑定6380 第三个我们绑定6381
现在我们的三个redis已经跑起来了。
截取部分重要配置文件:
logfile "/usr/local/redis/var/redis-one.log" dbfilename "dumpone.rdb" slaveof 127.0.0.1 6379 ##做谁的从机机 masterauth wbool ##主机的密码 如果主机有密码 这里一定要设置 要不然链接不上 replica-read-only yes ## 从机机是不是只能读
-
6379 master
-
6380 slave 6381 slave 6382 slave
我们看下这个的架构模式 一台主的 三台从机 然后主机负责写入 三台slave负责读操作 我们来测试下
-
在主机设置一个值 在从机里面就能读到这个值
但是这种情况有个弊端 。如果主机挂了怎么办 。又没办法写入。所以redis提供了一种哨兵模式 你可以理解成给你派了一个哨兵盯梢。如果发现主机挂了。马上会从从机里面挑选出一个当做主机。来保证系统的高可用
哨兵模式
我们来简单的测试一下哨兵模式
-
sentinel 配置
## sentinel monitor mymaster 127.0.0.1 6379 2 这里配置需要监控的master 最后一个2 代表切换master需要几个Sentinel的同意] sentinel auth-pass mymaster wbool # 如果主机设置了密码 一定需要配置密码 要不然哨兵没办法正常运行
-
启动sentinel
./redis-sentinel sentinel.conf
-
启动后 哨兵会通过master来找到对应的从机
我们来让主机挂掉。看看从机会不会自动变成主机 这里可以看到 哨兵选取了6381来代替原来的6379 成为了新的master
Sentinel作用: 1)Master状态检测 2)如果Master异常,则会进行Master-Slave切换,将其中一个Slave作为Master,将之前的Master作为Slave。 3)== Master-Slave切换后,master_redis.conf、slave_redis.conf和sentinel.conf的内容都会发生改变,即master_redis.conf中会多一行slaveof的配置,sentinel.conf的监控目标会随之调换。==
附录:https://www.cnblogs.com/kevingrace/p/9004460.html