Redis连接方式:JedisPool操作Redis

郎家岭伯爵 2023年12月26日 368次浏览

前言

前面我们写过使用 RedisTemplate 和 StringRedisTemplate 操作 Redis,本文我们将使用 JedisPool 操作 Redis。

实现

Redis官方 推荐使用 JedisPool 来操作 Redis。

这里我们直接贴代码:

引入依赖:

<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>4.3.1</version>
</dependency>

Java 代码:

package com.langjialing.helloworld.controlle1;

import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

/**
 * @author 郎家岭伯爵
 * @time 2023/12/26 16:17
 */

@RestController
@RequestMapping("/test33")
public class TestController33 {
    @Value("${spring.redis.host}")
    private String redisHost;

    @Value("${spring.redis.port}")
    private Integer redisPort;

    @Value("${spring.redis.timeout}")
    private Integer redisTimeOut;

    @Value("${spring.redis.password}")
    private String redisPassword;

    @GetMapping("/t1")
    public void test1(){
        JedisPool jedisPool = new JedisPool(new GenericObjectPoolConfig(), redisHost, redisPort, redisTimeOut, redisPassword);

        try(Jedis jedis = jedisPool.getResource()){
            // 存值
            jedis.set("langjialing111", "郎家岭伯爵111");

            // 获取值
            jedis.get("langjialing111");

            // 判断是否存在
            Boolean keyExist = jedis.exists("langjialing111");
            System.out.println(keyExist);

            // 设置过期时间
            jedis.expire("langjialing111", 300);

            // 获取过期时间
            Long keyTtl = jedis.ttl("langjialing111");
            System.out.println(keyTtl);

            // 删除值
            jedis.del("langjialing111");

            // 一次存多个值
            jedis.mset("langjialing11", "郎家岭伯爵11", "langjialing22", "郎家岭伯爵22");
            // 一次获取多个值
            jedis.mget("langjialing11", "langjialing22");
        }
    }
}

以上代码示例中使用了 try-with语法,这种用法同样是 Redis官方 推荐的使用方式

拓展

JedisPool jedisPool = new JedisPool() 创建实例时,Jedis 为我们提供了很多构造方法,我们可以根据实际需要来创建不同参数的实例。

总结

使用 JedisPool 操作 Redis。