天天看点

【Redis】Jedis 初识

文章目录

  • ​​一、Redis客户端介绍​​
  • ​​二、Jedis(Java Redis)​​
  • ​​2.1 什么是Jedis​​
  • ​​2.2 引入依赖​​
  • ​​2.3 基础使用​​
  • ​​2.3.1 建立连接​​
  • ​​2.3.2 测试String​​
  • ​​2.3.3 释放资源​​
  • ​​三、Jedis连接池​​

一、Redis客户端介绍

【Redis】Jedis 初识

如上图所示,​​Redis官网​​提供了各种语言的客户端,Java中常用的客户端如下图所示:

【Redis】Jedis 初识
  • 在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的支持也最为灵活、全面;

【Redis】Jedis 初识

​​返回顶部​​

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);
}      
【Redis】Jedis 初识

2.3.3 释放资源

@AfterEach
void down(){
    if (jedis!=null){
        jedis.close();
    }
}      
  • @AfterEach:JUnit5 @AfterEach 注解替换了 JUnit4 中的@After注解。它用于表示应在当前类中的每个@Test方法之后执行注解方法,这里用于测试之后关闭连接释放资源。
【Redis】Jedis 初识

​​返回顶部​​

三、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);
}