博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
redis哨兵配置
阅读量:6820 次
发布时间:2019-06-26

本文共 2150 字,大约阅读时间需要 7 分钟。

 

redis哨兵的启动和redis实例的启动没有关系。所以可以在任何机器上启动redis哨兵。至少要保证有两个哨兵在运行,要不然宕机后哨兵会找不到主节点。

配置步骤:

1.在redis的配置文件中添加鉴权和验证(添加requirepass和masterauth),redis主从都需要配置,配置的密码一般相同。

2.redis一般都在内网运行,所以注释掉#bind 127.0.0.1

3.关闭保护模式,protected-mode 把yes改为no

4.添加sentinel.conf配置文件:

#sentinel端口port 26379#工作路径,注意路径不要和主重复dir "/usr/local/redis-6379"# 守护进程模式daemonize yes#关闭保护模式protected-mode no# 指明日志文件名logfile "./sentinel.log"#哨兵监控的master,主从配置一样,这里只用输入redis主节点的ip/port和法定人数。sentinel monitor mymaster 192.168.125.128 6379 1# master或slave多长时间(默认30秒)不能使用后标记为s_down状态。sentinel down-after-milliseconds mymaster 5000#若sentinel在该配置值内未能完成failover操作(即故障时master/slave自动切换),则认为本次failover失败。sentinel failover-timeout mymaster 18000#设置master和slaves验证密码sentinel auth-pass mymaster 123456 sentinel parallel-syncs mymaster 1//指定了在执行故障转移时, 最多可以有多少个从服务器同时对新的主服务器进行同步

Sentinel参数在运行时可以使用SENTINEL SET命令更改

上面配置中的mymaster为该主从的名字,代码中会使用。

通过哨兵查看集群的信息:

$ redis-cli -p 26379sentinel master mymaster//查看master的状态 SENTINEL slaves mymaster //查看salves的状态SENTINEL sentinels mymaster //查看哨兵的状态SENTINEL get-master-addr-by-name mymaster//获取当前master的地址info sentinel//查看哨兵信息

启动哨兵:

方式一:redis-sentinel /path/to/sentinel.conf(推荐,这种方式启动和redis实例没有任何关系)方式二:redis-server /path/to/sentinel.conf --sentinel

java测试代码:

public static void main(String[] args) {        Set
sentinels = new HashSet
(); sentinels.add(new HostAndPort("192.168.125.128", 26379).toString()); sentinels.add(new HostAndPort("192.168.125.129", 26379).toString()); sentinels.add(new HostAndPort("192.168.125.130", 26379).toString()); JedisSentinelPool sentinelPool = new JedisSentinelPool("mymaster", sentinels); System.out.println("Current master: " + sentinelPool.getCurrentHostMaster().toString()); Jedis master = sentinelPool.getResource(); master.auth("pwdisadmin"); master.set("username","cczz"); Jedis master2 = sentinelPool.getResource(); master2.auth("pwdisadmin"); String value = master2.get("username"); System.out.println("username: " + value); master2.close(); sentinelPool.close(); sentinelPool.destroy(); }

 

转载地址:http://sfozl.baihongyu.com/

你可能感兴趣的文章
springboot(二):thymeleaf模板开发
查看>>
高通camera架构
查看>>
php 使用DOMDocument 解析xml
查看>>
如何7步实现根据源码包创建rpm包
查看>>
hadoop2.0集群搭建详解
查看>>
Spring Cloud Alibaba基础教程:Nacos配置的多环境管理
查看>>
极乐小程序榜单(第六期)
查看>>
使用Log4j为项目配置日志输出应用详细总结及示例演示.
查看>>
Lua-5.3.2 安装 luasocket 的正确姿势
查看>>
freeswitch实战经验1:服务器向成员主动发起会议邀请
查看>>
python转换文本编码和windows换行符
查看>>
try-catch中导致全局变量无法变化的bug
查看>>
Js中数组的操作
查看>>
浏览器缓存 from memory cache与from disk cache详解
查看>>
php编译常用选项
查看>>
Docker Machine 简介
查看>>
Angular4错误提示的说明(一)
查看>>
CCNA+NP学习笔记—交换网络篇
查看>>
一张图说明Linux启动过程
查看>>
Provider处理请求逻辑梳理
查看>>