博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
redis 哨兵模式配置 和 spring data redis 哨兵配置 总结
阅读量:2022 次
发布时间:2019-04-28

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

从帖子学习了哨兵配置,但是在实践的过程中遇到了问题,主要是关于bind配置,密码认证,ip的问题。然后再次总结一下。

redis版本3.2.100

分别有3个Sentinel节点,1个主节点,2个从节点组成一个Redis Sentinel。

角色 ip 端口
master 192.168.30.249 6379
slave1 192.168.30.123 6379
slave2 192.168.30.254 6379
Sentinel1 192.168.30.249 26379
Sentinel2 192.168.30.123 26379
Sentinel3 192.168.30.254 26379

192.168.30.249 配置

redis.conf配置

主要修改的配置如下,其他配置默认。

##这里绑定真实ip。让客户端可以远程访问bind 192.168.30.249port 6379##开启日志级别是debug,方便看日志调试。loglevel debug##日志位置logfile "D:/myStuepss/redis-x64-3.2.100/redisserver.log"##配置了master的认证密码,虽然当前角色是master,但是一旦挂掉恢复后,会变为salve,这个时候再连接新master的时候,如果master需要密码认证,就需要配置。masterauth "redistest@123"##客户端连接的时候需要密码认证。requirepass "redistest@123"

sentinel配置

#这里配置成真实ip。为了客户端可以远程访问,例如:我用了spring data redis. 这里如果不配置ip,会报错的。bind 192.168.30.249port 26379dir "D:\\myStuepss\\Redis-x64-3.2.100\\temp"#监控mastersentinel monitor mymaster 192.168.30.249 6379 2#要配置上master的认证密码,否则监控不到sentinel auth-pass mymaster redistest@123#配置上日志,方便排除错误,查看状态。logfile "D:/myStuepss/redis-x64-3.2.100/sentinellog.log"loglevel debug

192.168.30.254配置

redis.conf配置

主要修改的配置如下,其他配置默认。

##这里绑定真实ip。让客户端可以远程访问bind 192.168.30.254port 6379slaveof 192.168.30.249 6379##配置了master的认证密码,作为salve要同步master的数据,不配置就连不上mastermasterauth "redistest@123"##客户端连接的时候需要密码认证。requirepass "redistest@123"

sentinel配置

#这里配置成真实ip。为了客户端可以远程访问,例如:我用了spring data redis. 这里如果不配置ip,会报错的。bind 192.168.30.254port 26379dir "D:\\myStuepss\\Redis-x64-3.2.100\\temp"#监控mastersentinel monitor mymaster 192.168.30.249 6379 2#要配置上master的认证密码,否则监控不到sentinel auth-pass mymaster redistest@123#配置上日志,方便排除错误,查看状态。logfile "D:/myStuepss/redis-x64-3.2.100/sentinellog.log"loglevel debug

192.168.30.123配置

redis.conf配置

主要修改的配置如下,其他配置默认。

##这里绑定真实ip。让客户端可以远程访问bind 192.168.30.123port 6379slaveof 192.168.30.249 6379##配置了master的认证密码,作为salve要同步master的数据,不配置就连不上mastermasterauth "redistest@123"##客户端连接的时候需要密码认证。requirepass "redistest@123"

sentinel配置

#这里配置成真实ip。为了客户端可以远程访问,例如:我用了spring data redis. 这里如果不配置ip,会报错的。bind 192.168.30.123port 26379dir "D:\\myStuepss\\Redis-x64-3.2.100\\temp"#监控mastersentinel monitor mymaster 192.168.30.249 6379 2#要配置上master的认证密码,否则监控不到sentinel auth-pass mymaster redistest@123#配置上日志,方便排除错误,查看状态。logfile "D:/myStuepss/redis-x64-3.2.100/sentinellog.log"loglevel debug

spring data redis 哨兵配置

  • spring版本4.3.5.RELEASE
  • spring-data-redis版本1.8.9.RELEASE
  • jedis版本2.9.0

redis.properties配置

#主机和端口号redis.host1.cloudq=192.168.30.254redis.port1.cloudq=26379redis.host2.cloudq=192.168.30.249redis.port2.cloudq=26379redis.host3.cloudq=192.168.30.123redis.port3.cloudq=26379#JedisPoolConfig的参数#最大连接数redis.pool.maxTotal=30#最大空闲时间redis.pool.maxIdle=10#每次最大连接数redis.pool.numTestsPerEvictionRun=1024#释放扫描的扫描间隔redis.pool.timeBetweenEvictionRunsMillis=30000#连接的最小空闲时间redis.pool.minEvictableIdleTimeMillis=1800000#连接控歘按时间多久后释放,当空闲时间>该值且空闲连接>最大空闲连接数时直接释放redis.pool.softMinEvictableIdleTimeMillis=10000#获得链接时的最大等待毫秒数,小于0:阻塞不确定时间,默认-1redis.pool.maxWaitMillis=1500#在获得链接的时候检查有效性,默认falseredis.pool.testOnBorrow=true#在空闲时检查有效性,默认falseredis.pool.testWhileIdle=true#连接耗尽时是否阻塞,false报异常,true阻塞超时,默认trueredis.pool.blockWhenExhausted=false#JedisConnectionFactory的参数#超时时间,默认:2000redis.timeout.cloudq=3000#密码redis.password.cloudq=redistest@123#是否使用连接池,默认trueredis.usePool=true#使用数据库的索引,0-15之间的数字,默认:0redis.dbIndex=0#是否使用数据类型的转换,默认:true#redis.convertPipelineAndTxResults#哨兵配置#redis.sentinelConfigredis.expiration=3000

spring-redis.xml配置

classpath:redis.properties

junit测试

import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.data.redis.core.ValueOperations;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = {
"classpath:/spring-redis.xml"})public class LockTest { @Autowired private RedisTemplate redisTemplate; @org.junit.Test public void test() throws Exception{ ValueOperations valueOperations = redisTemplate.opsForValue(); for(int i =0;i<10000;i++){
try{ valueOperations.set("test:"+i,i); }catch (Exception e){ e.printStackTrace(); } Thread.sleep(1000); } }}

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

你可能感兴趣的文章
八大排序之插入排序(直接插入排序 & 希尔排序)
查看>>
LeetCode第五题:最长回文子串(C语言)
查看>>
深入理解Linux的权限
查看>>
C++之erase、remove 、remove_if的区别
查看>>
C++ Huffman树实现文件的压缩与解压
查看>>
C++ 异常
查看>>
02.django升级打怪学习记
查看>>
03.django升级打怪学习记
查看>>
04.django升级打怪学习记
查看>>
05.django升级打怪学习记
查看>>
06.django升级打怪学习记
查看>>
Devops学习笔记01
查看>>
Devops学习笔记02
查看>>
11.DDD与微服务设计模式笔记
查看>>
10.微服务所解决的问题领域分析,微服务是否适合你?笔记
查看>>
09.结构化数据库如何持续交付笔记
查看>>
08.持续交付中测试管理策略笔记
查看>>
07.持续交付流水线与敏捷开发笔记
查看>>
06.CI_CD流水线的设计原则笔记
查看>>
05.如何为团队设计简单高效的配置管理策略(分支策略)笔记
查看>>