1.资源
首先去redis的github上查找对应的windows安装包
github地址 https://github.com/MicrosoftArchive/redis/tags
2.安装
双击,选择安装文件夹,并勾选配置path
端口默认
设置最大内存,结合自己电脑的内存考虑
安装
3.启动
安装完成后 进入Redis安装目录进行命令行输入,将Redis服务启动
执行服务启动命令
redis-server --service-start
一般情况下是第一次安装好后服务就已经启动了,当你在去执行服务启动命令的时候会命令行报错
出现这种情况可以先执行服务中断指令redis-server --service-stop后再执行服务启动命令,则可看到服务成功启动的返回
这个是本地的默认的Redis服务的启动
判断是否本地服务已启动可以打开管理后台查看进程
下面开启redis
一主二从三哨兵的模式
在redis安装目录下新增6个配置文件
redis服务的配置文件是将原配置文件拷贝后进行修改
原配置文件名redis.windows.conf
复制后重命名为以下三个文件
redis6379.conf
redis6479.conf
redis6579.conf
同时新建三个哨兵服务文件,分别是
sentinel26379.conf
sentinel26479.conf
sentinel26579.conf
下面来说说配置
redis服务配置
redis6379.conf (主节点)
port 6379 //端口号
bind 127.0.0.1 //地址
requirepass 123456 //密码
redis6479.conf (从节点1)
port 6479 //端口号
bind 127.0.0.1 //地址
requirepass 123456 //密码(需要和主节点一致)
masterauth 123456 //主节点密码(只有从节点需要设置这个)
slaveof 127.0.0.1 6379 //主节点地址和端口号(注意这里没有:)
redis6579.conf (从节点2)
port 6579 //端口号
bind 127.0.0.1 //地址
requirepass 123456 //密码(需要和主节点一致)
masterauth 123456 //主节点密码(只有从节点需要设置这个)
slaveof 127.0.0.1 6379 //主节点地址和端口号(注意这里没有:)
哨兵配置信息
sentinel26379.conf
#端口号
port 26379
#配置监听的主服务器,这里 sentinel monitor 代表监控
#mymaster代表服务器名称,可以自定义
#127.0.0.1代表监控的主服务器
#6379代表端口
#2代表只有两个或者两个以上的哨兵认为主服务器不可用的时候,才会做故障切换操作
sentinel monitor mymaster 127.0.0.1 6379 2
#sentinel auth-pass 定义服务的密码
#mymaster服务名称
#123456 Redis服务器密码
sentinel auth-pass mymaster 123456
#修改心跳检测 5000毫秒
#这个配置项指定了需要多少失效时间,一个master才会被这个sentinel主观地认为是不可用的。 单位是毫秒
sentinel down-after-milliseconds mymaster 5000
#这个配置项指定了在发生failover主备切换时最多可以有多少个slave同时对新的master进行 同步,这个数字越小,完成failover所需的时间就越长,但是如果这个数字越大,就意味着越 #多的slave因为replication而不可用。可以通过将这个值设为 1 来保证每次只有一个slave 处于不能处理命令请求的状态。
sentinel parallel-syncs mymaster 1
#failover-timeout 可以用在以下这些方面:
#1. 同一个sentinel对同一个master两次failover之间的间隔时间。
#2. 当一个slave从一个错误的master那里同步数据开始计算时间。直到slave被纠正为向正确的master那里同步数据时。
#3.当想要取消一个正在进行的failover所需要的时间。
#4.当进行failover时,配置所有slaves指向新的master所需的最大时间。不过,即使过了这个超时,slaves依然会被正确配置为指向master,但是就不按parallel-syncs所配置的规则来了。
sentinel failover-timeout mymaster 15000
sentinel26479.conf
port 26479
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 15000
sentinel26579.conf
port 26579
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 15000
下面是指令运行顺序(需要用管理员的权限开启命令行窗口,切换到Redis安装目录)
redis-server.exe redis6379.conf //运行主redis节点
redis-server.exe redis6479.conf //运行从redis节点
redis-server.exe redis6579.conf //运行从redis节点
redis-server.exe sentinel26379.conf --sentinel //运行哨兵一服务
redis-server.exe sentinel26479.conf --sentinel //运行哨兵二服务
redis-server.exe sentinel26579.conf --sentinel //运行哨兵三服务
redis-cli.exe -h 127.0.0.1 -p 6379 //连接到 127.0.0.0:6379的端口服务
auth 123456//输入redis服务的连接密码
info replication //查看redis服务的基础属性
下面展示指令运行后的结果(注意运行后的命令行窗口不能关闭,否则服务会中断)
redis-server.exe redis6379.conf //运行主redis节点
redis-server.exe redis6479.conf //运行从redis节点
redis-server.exe redis6579.conf //运行从redis节点
redis-server.exe sentinel26379.conf --sentinel //运行哨兵一服务
redis-server.exe sentinel26479.conf --sentinel //运行哨兵二服务
redis-server.exe sentinel26579.conf --sentinel //运行哨兵三服务
新起一个命令行窗口,切换到Redis安装目录,执行以下命令
redis-cli.exe -h 127.0.0.1 -p 6379 //连接到 127.0.0.0:6379的端口服务
auth 123456//输入redis服务的连接密码
info replication //查看redis服务的基础属性
Ctrl+C后继续输入如下命令
redis-cli.exe -h 127.0.0.1 -p 6479 //连接到 127.0.0.0:6479的端口服务
auth 123456//输入redis服务的连接密码
info replication //查看redis服务的基础属性
另一个从节点也是一样的,这里就不做展示了
最后展示下Java中使用一主二从三哨兵的效果
这里我是通过redis存储我的登录token的,效果如下
通过上面可以看到我登录成功后主从redis服务都存储了一份token,那么这个时候要是我的主redis服务宕机了,还能不能继续成功执行登录呢,执行如下操作将主redis服务关闭
然后通过redis可视化工具也可看到redis主服务已经宕机了
这个时候我们去执行登录看看系统是出错了还是正常登录
可以看到还是正常登录的,然后看下存储的键值有没有改变
可以看到还存活的redis服务键值还是改变了,这说明程序并没有报错,依然能正常运行,这个时候我们看看6479服务和6579服务详情,执行前面的查看端口详情命令
我们可以看见原来的6479服务从原来的从服务变为了主服务,6579还是从服务,这就是一主二从三哨兵的效果
这个时候我们再启动6379服务,然后查看其详情,发现重新启动的6379服务变为了从服务,同时redis里存储的键值也同步成了主服务上的键值
初学者,有不对的地方欢迎指出,此贴是防止自己遗忘而记录的