前言
前面我们写过使用 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。