• SpringBoot--配置Redisson的方法


    原文网址:SpringBoot--配置Redisson的方法_IT利刃出鞘的博客-CSDN博客

    简介

    说明

            本文介绍如何在SpringBoot中配置Redisson

    官网网址

    redisson-spring-boot-starter配置方案:redisson/redisson-spring-boot-starter at master · redisson/redisson · GitHub

    spring-boot-starter-data-redis配置方案:Spring Boot Reference Documentation

    配置详解:2. 配置方法 · redisson/redisson Wiki · GitHub

    备注

            以下方法的推荐度由高到低。

    粉丝福利:有很多粉丝私信问我有没有Java的面试及PDF书籍等资料,我整理一下,包含:真实面试题汇总、简历模板、PDF书籍、PPT模板等。这些是我自己也在用的资料,面试题是面试官问到我的问题的整理,其他资料也是我自用的,真正实用、靠谱。资料可以从这里免费获取:资料地址

    方案1:用配置文件

    简介

            对于配置文件方案,引入的依赖必须是redisson-spring-boot-starter;

    法1:application.yml(通用配置)

    直接使用spring-boot-starter-data-redis的配置。

    1. spring:
    2. redis:
    3. host: 127.0.0.1
    4. port: 6379
    5. # password:
    6. # database: 0 #指定数据库,默认为0
    7. # timeout: 3000 #连接超时时间,单位毫秒,默认为0。也可以这么写:3s
    8. # ssl: false # 是否启用SSL连接,默认false
    9. # pool: #连接池配置
    10. # max-active: 8 #最大活跃连接数,默认8个。
    11. # max-idle: 8 #最大空闲连接数,默认8个。
    12. # max-wait: -1 #获取连接的最大等待时间,默认-1,表示无限制,单位毫秒。
    13. # #默认值可能会因为获取不到连接,导致事务无法提交,数据库被锁,大量线程处于等待状态的情况。
    14. # min-idle: 0 #最小空闲连接数,默认0。
    15. # sentinel:
    16. # master: myMaster #哨兵master
    17. # nodes: host1:port,host2:port #哨兵节点
    18. # cluster:
    19. # max-redirects: # 集群模式下,集群最大转发的数量
    20. # nodes: host1:port,host2:port # 集群节点

    法2:application.yml(redisson专用配置)

    写法1:都写在application.yml

    1. spring:
    2. redis:
    3. redisson:
    4. config: |
    5. clusterServersConfig:
    6. idleConnectionTimeout: 10000
    7. connectTimeout: 10000
    8. timeout: 3000
    9. retryAttempts: 3
    10. retryInterval: 1500
    11. failedSlaveReconnectionInterval: 3000
    12. failedSlaveCheckInterval: 60000
    13. password: null
    14. subscriptionsPerConnection: 5
    15. clientName: null
    16. loadBalancer: !<org.redisson.connection.balancer.RoundRobinLoadBalancer> {}
    17. subscriptionConnectionMinimumIdleSize: 1
    18. subscriptionConnectionPoolSize: 50
    19. slaveConnectionMinimumIdleSize: 24
    20. slaveConnectionPoolSize: 64
    21. masterConnectionMinimumIdleSize: 24
    22. masterConnectionPoolSize: 64
    23. readMode: "SLAVE"
    24. subscriptionMode: "SLAVE"
    25. nodeAddresses:
    26. - "redis://127.0.0.1:7004"
    27. - "redis://127.0.0.1:7001"
    28. - "redis://127.0.0.1:7000"
    29. scanInterval: 1000
    30. pingConnectionInterval: 0
    31. keepAlive: false
    32. tcpNoDelay: false
    33. threads: 16
    34. nettyThreads: 32
    35. codec: !<org.redisson.codec.MarshallingCodec> {}
    36. transportMode: "NIO"

    写法2:redisson配置单独拿出来

    applicaion.yml

    1. ​spring:
    2. redis:
    3. redisson:
    4. config: classpath:redisson.yml

    redisson.yml 

    1. clusterServersConfig:
    2. idleConnectionTimeout: 10000
    3. connectTimeout: 10000
    4. timeout: 3000
    5. retryAttempts: 3
    6. retryInterval: 1500
    7. password: null
    8. subscriptionsPerConnection: 5
    9. clientName: null
    10. loadBalancer: !<org.redisson.connection.balancer.RoundRobinLoadBalancer> {}
    11. slaveSubscriptionConnectionMinimumIdleSize: 1
    12. slaveSubscriptionConnectionPoolSize: 50
    13. slaveConnectionMinimumIdleSize: 32
    14. slaveConnectionPoolSize: 64
    15. masterConnectionMinimumIdleSize: 32
    16. masterConnectionPoolSize: 64
    17. readMode: "SLAVE"
    18. nodeAddresses:
    19. - "redis://127.0.0.1:7004"
    20. - "redis://127.0.0.1:7001"
    21. - "redis://127.0.0.1:7000"
    22. scanInterval: 1000
    23. threads: 0
    24. nettyThreads: 0
    25. codec: !<org.redisson.codec.JsonJacksonCodec> {}
    26. transportMode:"NIO"

            redisson配置文件优先级高于springboot配置文件优先级。

    方案2:用代码

    简介

            编程中有个思路:约定大于配置大于编程。能用配置则用配置,不推荐用代码去配置。

            对于配置类配置方案,引入的依赖可以是redisson-spring-boot-starter也可以是redisson。

    法1:编写配置类

    需要在Resource目录下创建redisson.yml。  

    1. @Configuration
    2. public class RedssonConfig {
    3. @Bean(destroyMethod="shutdown")
    4. public RedissonClient redisson() throws IOException {
    5. RedissonClient redisson = Redisson.create(
    6. Config.fromYAML(new ClassPathResource("redisson-single.yml").getInputStream()));
    7. return redisson;
    8. }
    9. }

    法2:用代码配置

    1. import org.redisson.Redisson;
    2. import org.redisson.api.RedissonClient;
    3. import org.redisson.config.Config;
    4. import org.springframework.context.annotation.Bean;
    5. import org.springframework.context.annotation.Configuration;
    6. @Configuration
    7. public class RedissonConfig {
    8. @Bean
    9. public RedissonClient redissonClient() {
    10. Config config = new Config();
    11. //指定编码,默认编码为org.redisson.codec.JsonJacksonCodec
    12. //config.setCodec(new org.redisson.client.codec.StringCodec());
    13. config.useSingleServer()
    14. .setAddress("redis://47.108.105.159:6379")
    15. .setPassword("cen66lyz")
    16. .setConnectionPoolSize(50)
    17. .setIdleConnectionTimeout(10000)
    18. .setConnectTimeout(3000)
    19. .setTimeout(3000)
    20. .setDatabase(5);
    21. return Redisson.create(config);
    22. }
    23. }

  • 相关阅读:
    JAVA 实现《推箱子升级版》游戏
    mvc-ioc实现
    【开题报告】基于SpringBoot的中小企业设备管理系统的设计与实现
    树莓派 RaspBerryPi 网络配置相关与改造usb网络摄像头
    数字孪生解决方案-最新全套文件
    7.10日学习打卡----初学Redis(五)
    剑指offer(C++)-JZ59:滑动窗口的最大值(数据结构-队列 & 栈)
    说说HBase读、写流程
    Mp3文件标签信息读取和写入(Kotlin)
    【编程100%】22-12 基本算法之 大整数截取
  • 原文地址:https://blog.csdn.net/feiying0canglang/article/details/126524833