一、什么是Jedis:
- Jedis Client是Redis官网推荐的一个面向java客户端文件实现对各类API进行封装调用
二、基于Maven整合Jedis操作Redis:
第1步:引入依赖:
- 1.新建maven项目,pom文件中引入依
xml
<?xml version="1.0" encoding="UTF-8"?>
<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>com.jianqun</groupId>
<artifactId>jedis-demo</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.7.0</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
第2步:创建连接:
java
package com.jianqun;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import redis.clients.jedis.Jedis;
import java.util.Map;
public class JedisTest {
private Jedis jedis;
@BeforeEach
public void setUp() {
// 建立连接
jedis = new Jedis("192.168.148.3", 6379);
// 设置密码
//jedis.auth("123321");
//选择库
jedis.select(0);
}
}
第3步:Jedis操作redis:
java
package com.jianqun;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import redis.clients.jedis.Jedis;
import java.util.Map;
public class JedisTest {
private Jedis jedis;
@BeforeEach
public void setUp() {
// 建立连接
jedis = new Jedis("192.168.148.3", 6379);
// 设置密码
//jedis.auth("123321");
//选择库
jedis.select(0);
}
//测试操作Redis
//测试String类型的数据结构
@Test
void testString() {
// 插入数据,方法名称就是redis命令名称,非常简单
String result = jedis.set("name", "张三");
System.out.println("result = " + result);
// 获取数据
String name = jedis.get("name");
System.out.println("name = " + name);
}
//测试Hash数据结构
@Test
void testHash() {
// 插入数据,方法名称就是redis命令名称,非常简单
jedis.hset("user:1", "name","张三");
jedis.hset("user:1", "age","12");
//获取数据
Map<String, String> map = jedis.hgetAll("user:1");
System.out.println("map= " + map);
}
//释放资源
@AfterEach
void tearDown() {
// 释放资源
if (jedis != null) {
jedis.close();
}
}
}
第4步:项目结构:

二、使用Jedis连接池方式操作Redis
2.1.说明:
Jedis本身是线程不安全的,并且频繁的创建和销毁连接会有性能损耗
,因此我们推荐大家使用Jedis连接池代替Jedis
;
2.2.编码实现
a.创建Jedis连接池的工具类:
java
package com.jianqun.util;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
/**
* Redis连接池
*/
public class JedisConnectionFactory {
private static final JedisPool jedisPool;
static {
// 配置连接池
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
// 最大连接
jedisPoolConfig.setMaxTotal(8);
// 最大空闲连接
jedisPoolConfig.setMaxIdle(8);
// 最小空闲连接
jedisPoolConfig.setMinIdle(0);
// 设置最长等待时间, ms
jedisPoolConfig.setMaxWaitMillis(200);
// 创建连接池对象:参数分别是服务器地址、端口号、超时时间、redis密码
jedisPool = new JedisPool(jedisPoolConfig, "192.168.148.3", 6379,1000, "190915");
}
// 获取Jedis对象
public static Jedis getJedis(){
return jedisPool.getResource();
}
}
b.使用连接池创建连接,进行测试:
java
package com.jianqun.test2;
import com.jianqun.util.JedisConnectionFactory;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import redis.clients.jedis.Jedis;
/**
* Redis连接池进行连接
*/
public class chiJedisTest {
private Jedis jedis;
@BeforeEach
void setUp() {
jedis = JedisConnectionFactory.getJedis();
}
@Test
void test(){
//存入数据
String result = jedis.set("name", "虎哥");
System.out.println("存储成功与否:" + result);
//获取数据
String name = jedis.get("name");
System.out.println("获取的name值是:" + name);
}
@AfterEach
void tearDown() {
if (jedis != null){
jedis.close();
}
}
}