文章目录
- 一、Redis客户端介绍
- 二、Jedis(Java Redis)
- 2.1 什么是Jedis
- 2.2 引入依赖
- 2.3 基础使用
- 2.3.1 建立连接
- 2.3.2 测试String
- 2.3.3 释放资源
- 三、Jedis连接池
一、Redis客户端介绍
如上图所示,Redis官网提供了各种语言的客户端,Java中常用的客户端如下图所示:
- 在Spring Data Redis中兼容了jedis、lettuce。
返回顶部
二、Jedis(Java Redis)
Jedis官网:https://github.com/redis/jedis
2.1 什么是Jedis
Jedis是Redis的java客户端,旨在提高性能和易用性。
Jedis是redis的java版本的客户端实现,使用Jedis提供的Java API对Redis进行操作,是Redis官方推崇的方式;并且,使用Jedis提供的对Redis的支持也最为灵活、全面;
返回顶部
2.2 引入依赖
要开始学习Jedis,首先将其作为依赖项添加到Java项目中。如果您使用的是Maven,则如下所示:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>x.x.x</version> // 引入需要的版本即可
</dependency>
2.3 基础使用
2.3.1 建立连接
public class JTestString {
// TODO: 1.封装Jedis
private Jedis jedis;
@BeforeEach
void setUp() {
// TODO: 2.新建 redis 连接
jedis = new Jedis("192.168.64.178", 6379);
// TODO: 3.设置密码
jedis.auth("123456");
// TODO: 4.选择库
jedis.select(0);
}
}
- @BeforeEach:JUnit5 @BeforeEach注解替换了 JUnit4 中的@Before注解。它用于表示应在当前类中的每个@Test方法之前执行注解方法。
2.3.2 测试String
@Test
void testString() {
// TODO: 5.存数据
String result = jedis.set("student", "zyx");
System.out.println("result=" + result);
// TODO: 6.获取数据
String result1 = jedis.get("phone");
System.out.println("result=" + result1);
}
2.3.3 释放资源
@AfterEach
void down(){
if (jedis!=null){
jedis.close();
}
}
- @AfterEach:JUnit5 @AfterEach 注解替换了 JUnit4 中的@After注解。它用于表示应在当前类中的每个@Test方法之后执行注解方法,这里用于测试之后关闭连接释放资源。
返回顶部
三、Jedis连接池
Jedis本身是线程不安全的,并且频繁的创建和销毁连接会使得有性能损耗,所以我们主张使用Jedis连接池代替Jedis的直连方式。
public class JedisConnFactory {
// 创建JedisPool连接池对象
private static final JedisPool jedisPool;
static {
// 配置连接池
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
// 最大\小连接数、等待时间
jedisPoolConfig.setMaxTotal(8);
jedisPoolConfig.setMaxIdle(8);
jedisPoolConfig.setMinIdle(0);
jedisPoolConfig.setMaxWaitMillis(1000);
// 创建连接池对象(连接池配置对象,主机,端口,超时,密码)
jedisPool = new JedisPool(jedisPoolConfig,
"192.168.64.178",
6379,
1000,
"123456");
}
public static Jedis getJedis(){
// 返回Jedis连接对象
return jedisPool.getResource();
}
}
@BeforeEach
void setUp() {
// jedis = new Jedis("192.168.64.178", 6379);
// 使用连接池获取连接
jedis = JedisConnFactory.getJedis();
jedis.select(0);
}