一、redis的主从复制
现在我们搭建一个主从复制的redis
首先下载好rediswindows版https://github.com/MicrosoftArchive/redis/releases ,下载解压,里面的配置文件redis.windows.conf即是redis-server的配置文件,我们准备启动三个redis-server 所以先把这个配置文件复制两份,分别为redis.windows.conf, redis.windows(1).conf,redis.windows(2).conf我们对这三个服务起个名字分别为redis1 ,redis2 ,redis3关系为redis2从属于redis1,redis3从属于redis2
那么配置文件里面的几个主要配置说一下首先需要配置bind即是绑定ip, port redis服务端口,授权密码,主从最好一样,保护模式设置为no,如果是从服务,则需多设置主服务的ip和端口,以及主服务的登陆密码
以上设置在配置文件对应的字段分别为bind , port , requirepass , protected-mode,slaveof , masterauth
配置好以后启动服务,打开cmd执行redis-server.exe redis.windows.conf ,即是打开第一个主服务,然后再继续打开第二个,第三个cmd窗口分别执行redis-server.exe redis.window(1).conf,redis-server.exe redis.window(2).conf 这样就算是搭建好了一个主从复制的redis,主设备redis1能读能写,从设备redis2,redis3只能读,往redis1写的时候会同步至所有的从设备,启动客户端连接命令redis-cli.exe -h 127.0.0.1 -p 6001
二、哨兵模式
在主从复制模式下,如果主设备挂了怎么办,这时就需要用到哨兵模式,如何配置哨兵模式
新建配置文件sentinel.conf,内容
bind 127.0.0.1
port 6011
#这里配置监控的redis 其中最后的1表示多少个哨兵
sentinel monitor myredis 127.0.0.1 6002 2
这一行代表sentinel监控的master的名字叫做mymaster,地址为127.0.0.1:6379,行尾最后的一个2代表什么意思呢?我们知道,网络是不可靠的,有时候一个sentinel会因为网络堵塞而误以为一个master redis已经死掉了,当sentinel集群式,解决这个问题的方法就变得很简单,只需要多个sentinel互相沟通来确认某个master是否真的死了,这个2代表,当集群中有2个sentinel认为master死了时,才能真正认为该master已经不可用了。(sentinel集群中各个sentinel也有互相通信,通过gossip协议)。
sentinel auth-pass myredis pinnet_tech
# master或slave多长时间(默认30秒)不能使用后标记为s_down状态。
sentinel down-after-milliseconds mymaster 5000
#若sentinel在该配置值内未能完成failover操作(即故障时master/slave自动切换),则认为本次failover失败。
sentinel failover-timeout mymaster 18000
然后启动哨兵redis-server.exe sentinel.conf --sentinel启动后,关闭redis1,过段时间后,会发现redis2成了主master可读可写
jedis连接哨兵模式: http://hpgary.iteye.com/blog/2374051
reids集群配置:https://blog.csdn.net/truelove12358/article/details/79612954