redis Sentinel 配置及使用

Sentinel选举新的matser时候需要过半的几点才能选举成功,因此我们设置了1个master,2个slave redis服务器,同时在三个服务器上面都需要配置 Sentinel,Sentinel会监控三个redis服务器,同时三个 Sentinel 之前也会互相监控。

服务器说明:三台服务器 

masterIp:192.168.43.213
slave1Ip:192.168.43.169
slave2Ip:192.168.43.39

1、master配置:master redis.conf只需要配置密码即可


# 设置密码
requirepass "123456"
masterauth 123456

2、两个slave的redis.conf的配置


# 设置密码
requirepass "123456"
masterauth 123456
# 指定主服务器,注意:有关slaveof的配置只是配置从服务器,主服务器不需要配置
slaveof 192.168.43.213 6379

3、哨兵配置:三个哨兵的配置都一样;在Redis安装目录下有一个sentinel.conf文件,copy一份进行修改

# 配置监听的主服务器,这里sentinel monitor代表监控,mymaster代表服务器的名称,可以自定义,192.168.43.213代表监控的主服务器,6379代表端口,2代表只有两个或两个以上的哨兵认为主服务器不可用的时候,才会进行failover操作。
sentinel monitor mymaster 192.168.43.213 6379 2
# sentinel author-pass定义服务的密码,mymaster是服务名称,123456是Redis服务器密码
# sentinel auth-pass <master-name> <password>
sentinel auth-pass mymaster 123456

4、配置完毕,按顺序先启动mater-salve1-slave2,再启动三个 Sentinel 

控制台可以看见 哨兵间互相监控

5、java链接哨兵模式使用redis

5.1引入jredis的pom依赖:

		<dependency>
			<groupId>redis.clients</groupId>
			<artifactId>jedis</artifactId>
			<version>2.7.1</version><!--版本号可根据实际情况填写 -->
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
			<version>3.3.2</version>
		</dependency>

java使用代码:

JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
		jedisPoolConfig.setMaxTotal(10);
		jedisPoolConfig.setMaxIdle(5);
		jedisPoolConfig.setMinIdle(5);

		Set<String> sentinels = new HashSet<String>(Arrays.asList("192.168.43.213:26379", "192.168.43.169:26379", "192.168.43.39:26379"));
		
		
		JedisSentinelPool pool = new JedisSentinelPool("mymaster", sentinels, jedisPoolConfig, "123456");
		Jedis jedis = pool.getResource();
		
		jedis.set("SentinelKey","SentinelValue2");
		System.out.println(jedis.get("SentinelKey"));

控制台输出:

关闭master服务器等几秒查看剩余两台slave服务器,有一台切换为了master

再使用上面代码测试成功,说明操作成功

5.2 Redisson连接哨兵模式使用redis

引入pom依赖:

		<dependency>
			<groupId>org.redisson</groupId>
			<artifactId>redisson</artifactId>
			<version>3.13.3</version>
		</dependency>

使用实例:

Config config = new Config();
		config.useSentinelServers().setMasterName("mymaster").addSentinelAddress("redis://192.168.4    
    3.213:26379","redis://192.168.43.169:26379","redis://192.168.43.39:26379").setPassword("123456");

RedissonClient client = Redisson.create(config);
		
client.getBucket("key1").set("value2");
		
String a = (String) client.getBucket("key1").get();
System.out.println(a);
		
client.shutdown();

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值