在上篇文章中我们已经实现了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。