Redisson连接redis单机和哨兵模式

  • A+
所属分类:redis

从图中可以看出redisson对于不同的redis模式给出了不同的配置类

  • MasterSlaveServersConfig

  • SentinelServersConfig

  • SingleServerConfig

具体配置

  • application.properties


  1. # redisson-single


  2. # redisson.address=redis://101.241.71.70:9090


  3. # redisson.password=123456




  4. # redisson-sentinel


  5. redisson.masterName=mymaster


  6. redisson.schema=redis://


  7. redisson.sentinelAddresses=101.241.71.70:26377,101.241.71.70:26378,101.241.71.70:26379


  8. redisson.password=123456

  • pom.xml


  1. <dependency>


  2. <groupId>org.redisson</groupId>


  3. <artifactId>redisson</artifactId>


  4. <!--<version>3.11.4</version>-->


  5. <version>3.13.4</version>


  6. </dependency>

RedissionConfiguration.class
 


  1. import org.apache.commons.lang3.StringUtils;


  2. import org.redisson.Redisson;


  3. import org.redisson.api.RedissonClient;


  4. import org.redisson.config.Config;


  5. import org.redisson.config.SentinelServersConfig;


  6. import org.springframework.boot.context.properties.ConfigurationProperties;


  7. import org.springframework.context.annotation.Bean;


  8. import org.springframework.context.annotation.Configuration;




  9. @Configuration


  10. @ConfigurationProperties(prefix = "redisson")


  11. public class RedissionConfiguration {


  12. private int timeout = 3000;


  13. private String schema = "redis://";


  14. private String address;


  15. private String password;


  16. private int connectionPoolSize = 64;


  17. private int connectionMinimumIdleSize = 10;


  18. private int slaveConnectionPoolSize = 250;


  19. private int masterConnectionPoolSize = 250;


  20. private String[] sentinelAddresses;


  21. private String masterName;



  22. public int getTimeout() {


  23. return timeout;


  24. }



  25. public void setTimeout(int timeout) {


  26. this.timeout = timeout;


  27. }



  28. public String getSchema() {


  29. return schema;


  30. }



  31. public void setSchema(String schema) {


  32. this.schema = schema;


  33. }



  34. public String getAddress() {


  35. return address;


  36. }



  37. public void setAddress(String address) {


  38. this.address = address;


  39. }



  40. public String getPassword() {


  41. return password;


  42. }



  43. public void setPassword(String password) {


  44. this.password = password;


  45. }



  46. public int getConnectionPoolSize() {


  47. return connectionPoolSize;


  48. }



  49. public void setConnectionPoolSize(int connectionPoolSize) {


  50. this.connectionPoolSize = connectionPoolSize;


  51. }



  52. public int getConnectionMinimumIdleSize() {


  53. return connectionMinimumIdleSize;


  54. }



  55. public void setConnectionMinimumIdleSize(int connectionMinimumIdleSize) {


  56. this.connectionMinimumIdleSize = connectionMinimumIdleSize;


  57. }



  58. public int getSlaveConnectionPoolSize() {


  59. return slaveConnectionPoolSize;


  60. }



  61. public void setSlaveConnectionPoolSize(int slaveConnectionPoolSize) {


  62. this.slaveConnectionPoolSize = slaveConnectionPoolSize;


  63. }



  64. public int getMasterConnectionPoolSize() {


  65. return masterConnectionPoolSize;


  66. }



  67. public void setMasterConnectionPoolSize(int masterConnectionPoolSize) {


  68. this.masterConnectionPoolSize = masterConnectionPoolSize;


  69. }



  70. public String[] getSentinelAddresses() {


  71. return sentinelAddresses;


  72. }



  73. public void setSentinelAddresses(String[] sentinelAddresses) {


  74. this.sentinelAddresses = sentinelAddresses;


  75. }



  76. public String getMasterName() {


  77. return masterName;


  78. }



  79. public void setMasterName(String masterName) {


  80. this.masterName = masterName;


  81. }





  82. /*测试时mock使用*/


  83. /*@Bean


  84.    RedissonClient redissonSingle() {


  85.        RedissonClient redissonClient = Mockito.mock(RedissonClient.class);


  86.        return redissonClient;


  87.    }*/



  88. /**


  89.     * 单机模式


  90.     */


  91. /*@Bean


  92.    RedissonClient redissonSingle() {


  93.        Config config = new Config();


  94.        SingleServerConfig serverConfig = config.useSingleServer()


  95.                .setAddress(address)


  96.                .setTimeout(timeout)


  97.                .setConnectionPoolSize(connectionPoolSize)


  98.                .setConnectionMinimumIdleSize(getConnectionMinimumIdleSize());


  99.        if (StringUtils.isNotBlank(password)) {


  100.            serverConfig.setPassword(password);


  101.        }


  102.        return Redisson.create(config);


  103.    }*/



  104. /**


  105.     * 哨兵模式


  106.     * @return


  107.     */


  108. @Bean


  109. RedissonClient redissonSentinel() {


  110. Config config = new Config();



  111. // 拼接协议


  112. String[] sentinelAddressesWithSchema = new String[sentinelAddresses.length];


  113. for (int i = 0; i < sentinelAddresses.length; i++) {


  114. sentinelAddressesWithSchema[i] = schema + sentinelAddresses[i];


  115. }



  116. SentinelServersConfig serversConfig = config.useSentinelServers()


  117. .setMasterName(masterName)


  118. .addSentinelAddress(sentinelAddressesWithSchema)


  119. .setMasterConnectionPoolSize(masterConnectionPoolSize)


  120. .setSlaveConnectionPoolSize(slaveConnectionPoolSize)


  121. .setMasterConnectionMinimumIdleSize(getConnectionMinimumIdleSize())


  122. .setSlaveConnectionMinimumIdleSize(getConnectionMinimumIdleSize());



  123. if (StringUtils.isNotBlank(password)) {


  124. serversConfig.setPassword(password);


  125. }


  126. return Redisson.create(config);


  127. }


  128. }

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: