Redis - Jedis 客户端

85 阅读1分钟

Jedis 概述

  1. 定义:Jedis是Java语言中一个开源的、用于操作Redis数据库的客户端库。 它是由Redis官方推荐的Java客户端之一
  2. 功能:提供了与 Redis 服务器进行通信的基础 API,可以直接通过 Java 代码执行 Redis 命令
  3. 官网网址:github.com/redis/jedis

使用步骤

  1. 引入依赖

    <!--jedis-->
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>3.7.0</version>
    </dependency>
    <!--单元测试-->
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter</artifactId>
        <version>5.7.0</version>
        <scope>test</scope>
    </dependency>
    
  2. 创建 Jedis 对象,建立连接

    private Jedis jedis;
    
    @BeforeEach
    void setUp() {
        // 1.建立连接
        jedis = new Jedis("192.168.7.7", 6379);
        // jedis = JedisConnectionFactory.getJedis();
        // 2.设置密码
        jedis.auth("123");
        // 3.选择库
        jedis.select(0);
    }
    
  3. 引用 Jedis api 进行数据库操作

  4. 释放连接

    @AfterEach
    void tearDown() {
        if (jedis != null) {
            jedis.close();
        }
    }
    

Jedis 连接池

  1. 定义:统一管理 Jedis 连接的方式

  2. 功能

    1. 避免 Jedis 本身线程不安全问题
    2. 避免频繁创建销毁连接的性能损耗
  3. 基本参数(通过 application.yaml 文件进行配置更好)

    public class JedisConnectionFactory {
        private static final JedisPool jedisPool;
    
        static{
            // 连接池配置参数
            JedisPoolConfig poolConfig = new JedisPoolConfig();
            // 最大连接数量 (最多允许创建的连接数量)
            poolConfig.setMaxTotal(8);
            // 最大空闲连接 (做多预备多少个空闲的连接)
            poolConfig.setMaxIdle(8);
            // 最小空闲连接 (做少预备多少个空闲连接, 长时间空闲时会释放多余的空闲连接)
            poolConfig.setMinIdle(0);
            // 最大等待时间 (单位是 ms, 如果超过这个时间没有获取到空闲连接则会报错)
            poolConfig.setMaxWaitMillis(1000);
            jedisPool = new JedisPool(poolConfig, "192.168.7.7", 6379, 1000, "123");
        }
    
    		// 通过JedisPool获取Jedis对象,调用此方法则线程池会创建一个线程
        public static Jedis getJedis(){
            return jedisPool.getResource();
        }
    }
    
  4. 使用连接池中的线程

    private Jedis jedis;
    jedis = JedisConnectionFactory.getJedis();
    

lettuce 客户端

Redisson 客户端