当前位置:   article > 正文

springboot集成redisson

springboot集成redisson

        springboot集成redisson有两种方式,分别是集成redisson-spring-boot-starter或redisson-spring-data。由于作者的项目和redisson-spring-boot-starter有冲突,所以选择集成redisson-spring-data,下面介绍集成集成步骤,已单机版redis为列。

引用依赖

  1. <dependency>
  2. <groupId>org.redisson</groupId>
  3. <artifactId>redisson-spring-data-27</artifactId>
  4. <version>3.23.3</version>
  5. </dependency>

根据官网说明,不同步的springboot版本引入不同版本的redisson-spring-data,如下

https://github.com/redisson/redisson/tree/master/redisson-spring-data

配置redisson

 1、在classpath下添加redisson.yaml文件用于存放redisson的配置,更多配置参考官网

https://github.com/redisson/redisson/wiki/2.-Configuration

  1. singleServerConfig:
  2. address: redis://127.0.0.1:6379 #redis地址
  3. database: 0 #Database index used for Redis connection
  4. connectTimeout: 10000 #连接到任何Redis服务器时超时
  5. timeout: 3000 #Redis服务器响应超时。Redis命令发送成功后开始倒计时。毫秒值
  6. connectionPoolSize: 64 #Redis连接最大池大小
  7. connectionMinimumIdleSize: 24 #最小空闲Redis连接量
  8. idleConnectionTimeout: 10000 #如果池连接在超时时间内未使用,并且当前连接数量大于最小空闲连接池大小,则将关闭并从池中删除。毫秒值
  9. retryAttempts: 3 #重试次数,如果在retryAttempts之后Redis命令不能被发送到Redis服务器,将会抛出错误。但如果发送成功,则会启动超时
  10. retryInterval: 1500 #在此时间间隔之后,将执行另一次发送Redis命令的尝试。单位为毫秒
  11. subscriptionConnectionPoolSize: 50 #Redis订阅连接最大池大小
  12. subscriptionsPerConnection: 5 #每个Redis连接的订阅限制
  13. subscriptionConnectionMinimumIdleSize: 1 #最小空闲Redis订阅连接数
  14. dnsMonitoringInterval: 5000 #DNS变更监控周期。应用程序必须确保JVM DNS缓存TTL足够低以支持这一点。设置-1为禁用。代理模式下支持单个主机名的多个IP绑定
  15. #password: null
  16. #username: null
  17. #clientName: null 客户端连接名称
  18. #credentialsResolver: 默认空,定义在连接Redis服务器身份验证时调用的凭据解析器。每个Redis节点地址返回凭据对象,它包含用户名和密码字段。允许指定动态更改Redis凭据。

2、注册RedissonClient

  1. @Configuration
  2. public class RedissonSpringDataConfig {
  3. @Bean
  4. public RedissonConnectionFactory redissonConnectionFactory(RedissonClient redisson) {
  5. return new RedissonConnectionFactory(redisson);
  6. }
  7. @Bean(destroyMethod = "shutdown")
  8. public RedissonClient redisson(@Value("classpath:/redisson.yaml") Resource configFile) throws IOException {
  9. Config config = Config.fromYAML(configFile.getInputStream());
  10. return Redisson.create(config);
  11. }
  12. }

3、编写工具类

  1. @Component
  2. public class RedissonUtil {
  3. private static RedissonClient redissonClient;
  4. @Autowired
  5. public void setRedissonClient(RedissonClient redissonClient) {
  6. RedissonUtil.redissonClient = redissonClient;
  7. }
  8. /**
  9. * key是否存在
  10. * @param key
  11. * @return
  12. */
  13. public static boolean isExists(String key){
  14. return redissonClient.getBucket(key).isExists();
  15. }
  16. /**
  17. * 获取生命周期
  18. * @param key
  19. * @return
  20. */
  21. public static long getExpireTime(String key){
  22. return redissonClient.getBucket(key).remainTimeToLive();
  23. }
  24. /**
  25. * 设置生命周期
  26. * @param key
  27. * @param time
  28. * @return
  29. */
  30. public static boolean setExpireTime(String key, Long expire){
  31. return redissonClient.getBucket(key).expire(Duration.ofMillis(expire));
  32. }
  33. /**
  34. * 保存字符串
  35. * @param key
  36. * @param value
  37. */
  38. public static void setStr(String key, String value){
  39. RBucket<String> rBucket = redissonClient.getBucket(key);
  40. rBucket.set(value);
  41. }
  42. /**
  43. * 保存字符串
  44. * @param key
  45. * @param value
  46. * @param expire
  47. */
  48. public static void setStr(String key, String value, Long expire){
  49. RBucket<String> rBucket = redissonClient.getBucket(key);
  50. rBucket.set(value, Duration.ofMillis(expire));
  51. }
  52. /**
  53. * 查询字符串
  54. * @param key
  55. * @return
  56. */
  57. public static String getStr(String key){
  58. if(isExists(key)){
  59. return null;
  60. }
  61. RBucket<String> rBucket = redissonClient.getBucket(key);
  62. return rBucket.get();
  63. }
  64. /**
  65. * 保存对象
  66. * @param key
  67. * @param value
  68. * @param <T>
  69. */
  70. public static <T> void setObject(String key, T value){
  71. RBucket<T> rBucket = redissonClient.getBucket(key);
  72. rBucket.set(value);
  73. }
  74. /**
  75. * 保存对象
  76. * @param key
  77. * @param value
  78. * @param expire
  79. * @param <T>
  80. */
  81. public static <T> void setObject(String key, T value, Long expire){
  82. RBucket<T> rBucket = redissonClient.getBucket(key);
  83. rBucket.set(value, Duration.ofMillis(expire));
  84. }
  85. /**
  86. * 查询对象
  87. * @param key
  88. * @return
  89. */
  90. public static <T> T getObject(String key){
  91. RBucket<T> rBucket = redissonClient.getBucket(key);
  92. return rBucket.get();
  93. }
  94. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/853069
推荐阅读
相关标签
  

闽ICP备14008679号