Redis连接方式:JedisPool操作Redis

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

前言

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

实现

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

这里我们直接贴代码:

引入依赖:

  1. <dependency>
  2. <groupId>redis.clients</groupId>
  3. <artifactId>jedis</artifactId>
  4. <version>4.3.1</version>
  5. </dependency>

Java 代码:

  1. package com.langjialing.helloworld.controlle1;

  2. import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
  3. import org.springframework.beans.factory.annotation.Value;
  4. import org.springframework.web.bind.annotation.GetMapping;
  5. import org.springframework.web.bind.annotation.RequestMapping;
  6. import org.springframework.web.bind.annotation.RestController;
  7. import redis.clients.jedis.Jedis;
  8. import redis.clients.jedis.JedisPool;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

拓展

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

总结

使用 JedisPool 操作 Redis。