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