使用maven创建redis客户端连接
java连接redis集群
Jedis Client是Redis官网推荐的一个面向java客户端,库文件实现了对redis各类API进行封装调。
笔者通过用maven构建此项目(简单使用maven可以参考另一篇文章),在Eclipse中进行如下操作。
1、jedis客户端的所有依赖关系pom.xml文件如下
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>paas</groupId>
<artifactId>redis-client</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>redis-client</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.7.2</version>
</dependency>
</dependencies>
</project>
2、新建类class,连接Redis的单个节点如下
package paas.redis_client;
import org.junit.Test;
import redis.clients.jedis.Jedis;
/**
* Jets测试
* @since 2020年04月27日
*/
public class JedisDemo1{
@Test
/**
* 单实例的测试
*/
public void demo1(){
// 1. 设置IP地址和端口
Jedis jedis = new Jedis("10.134.170.133",6379);
jedis.auth("123456");
// 2. 保存数据
jedis.set("bookname","Redis");
// 3. 获取数据
String value = jedis.get("bookname");
System.out.println(value);
// 4.释放资源
jedis.close();
}
}
可以右击@ test测试如下,点击运行
3、新建类class,连接Redis的sentinel集群如下
package paas.redis_client;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.JedisSentinelPool;
import java.util.HashSet;import java.util.Set;
import org.junit.Test;
public class JedisSentinel {
public static void main(String[] args) {
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(10);
config.setMaxWaitMillis(1000);
String masterName = "mymaster";
Set<String> sentinelSet = new HashSet<String>();
sentinelSet.add("10.134.170.133:16381");
sentinelSet.add("10.134.170.153:16379");
sentinelSet.add("10.134.170.153:16380");
JedisSentinelPool pool = new JedisSentinelPool(masterName, sentinelSet, config,"123456");
Jedis jedis = null;
try {
jedis = pool.getResource();
jedis.set("name", "yiyi");
String value = jedis.get("name");
// 获取键名为name的值
System.out.println(value);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (jedis != null) {
jedis.close();
}
}
}
}
运行结果如下:
4、redis单实例连接池连接
package paas.redis_client;
import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
/**
* Reds测试
*/
public class JedisDemo1{
@Test
/**
* 连接池连接方式
*/
public void demo2(){
// 获取连接池配置对象
JedisPoolConfig config = new JedisPoolConfig();
// 设置最大连接数
config.setMaxTotal(30);
// 设置最大的空闲连接数
config.setMaxIdle(10);
// 获得连接池: JedisPool jedisPool = new JedisPool(poolConfig,host,port);
JedisPool jedisPool = new JedisPool(config,"10.134.170.133",6379);
// 获得核心对象:reds
Jedis jedis = null;
try{
// 通过连接池来获得连接
jedis = jedisPool.getResource();
// 设置数据
jedis.auth("123456");
jedis.set("name","张三");
// 获取数据
String value = jedis.get("name");
System.out.println(value);
} catch (Exception e){
e.printStackTrace();
} finally {
// 释放资源
if(jedis != null){
jedis.close();
}
// 释放连接池
if(jedisPool != null){
jedisPool.close();
}
}
}
}