基于Sentinel的Java客户端操作Redis

时间:2021-03-17 17:30:29

在上篇文章中我们已经实现了Redis基于Sentinel的主从切换了,那么我们怎么在java程序中来使用呢,下面我就来简单的介绍一下。

首先我们需要引入java中操作redis的jar包,我项目是使用maven控制的,因此我在pom.xml中引入

<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.0.2.RELEASE</version>
</dependency>

<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.7.2</version>
<type>jar</type>
<scope>compile</scope>
</dependency>

例子如下:

package com.hiifit.cloudplatform.gaia.test;
import java.util.HashSet;
import java.util.Set;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisSentinelPool;

public class RedisSentinelTest {

@SuppressWarnings("deprecation")
public static void main(String[] args) {

Set<String> sentinels = new HashSet<String>();
String hostAndPort1 = "192.168.11.166:26379";
sentinels.add(hostAndPort1);

String clusterName = "mymaster";
String password = "test";

JedisSentinelPool redisSentinelJedisPool = new JedisSentinelPool(clusterName,sentinels,password);

Jedis jedis = null;
try {
jedis = redisSentinelJedisPool.getResource();
jedis.set("key", "value");
} catch (Exception e) {
e.printStackTrace();
} finally {
redisSentinelJedisPool.returnBrokenResource(jedis);
}

redisSentinelJedisPool.close();
}

}

然后我们去165和166查看,登录 ./redis-cli -h 192.168.11.165 -p 20081 -a test,进入到客户端,
get key,看是不是打印出了value,这就说明已经存进去了,同理去166下面查看是不是也看到了value。