redis分佈式鎖(一)———springboot 整合 redisson(starter方式)

  前段項目中大量用到了redis的分佈式鎖,近期總結一下,先從springboot整合redisson提及。node

  Redisson是一個在Redis的基礎上實現的Java駐內存數據網格(In-Memory Data Grid)。它不只提供了一系列的分佈式的Java經常使用對象,還提供了許多分佈式服務。其中包括(BitSetSetMultimapSortedSetMapListQueueBlockingQueueDequeBlockingDequeSemaphoreLockAtomicLongCountDownLatchPublish / SubscribeBloom filterRemote serviceSpring cacheExecutor serviceLive Object serviceScheduler service) Redisson提供了使用Redis的最簡單和最便捷的方法。 redis

1、添加maven依賴spring

在pom.xml加入以下配置springboot

<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-boot-starter</artifactId>
<version>3.11.5</version>
</dependency>

2、修改yml配置文件maven

至於怎麼配置,能夠查看 starter包下面的RedissonAutoConfiguration、RedissonProperties類,會了解到須要設置哪些參數。tcp

在瞭解了須要設置哪些參數後,在springboot的配置文件中加入以下配置:分佈式

spring: redis: redisson: config: "classpath:redisson.yml"

而後,在resource目錄新建redisson.yml文件,加入以下配置spring-boot

clusterServersConfig: idleConnectionTimeout: 10000 connectTimeout: 10000 timeout: 3000 retryAttempts: 3 retryInterval: 1500 failedSlaveReconnectionInterval: 3000 failedSlaveCheckInterval: 60000 password: null subscriptionsPerConnection: 5 clientName: null loadBalancer: !<org.redisson.connection.balancer.RoundRobinLoadBalancer> {} subscriptionConnectionMinimumIdleSize: 1 subscriptionConnectionPoolSize: 50 slaveConnectionMinimumIdleSize: 24 slaveConnectionPoolSize: 64 masterConnectionMinimumIdleSize: 24 masterConnectionPoolSize: 64 readMode: "SLAVE" subscriptionMode: "SLAVE" nodeAddresses: - "redis://192.168.35.142:7002" - "redis://192.168.35.142:7001" - "redis://192.168.35.142:7000" scanInterval: 1000 pingConnectionInterval: 0 keepAlive: false tcpNoDelay: false threads: 16 nettyThreads: 32 codec: !<org.redisson.codec.FstCodec> {} transportMode: "NIO"

也能夠直接把所有配置寫到springboot的配置文件裏(不推薦),以下:spa

spring: redis: redisson: config: clusterServersConfig: idleConnectionTimeout: 10000 connectTimeout: 10000 timeout: 3000 retryAttempts: 3 retryInterval: 1500 failedSlaveReconnectionInterval: 3000 failedSlaveCheckInterval: 60000 password: null subscriptionsPerConnection: 5 clientName: null loadBalancer: !<org.redisson.connection.balancer.RoundRobinLoadBalancer> {} subscriptionConnectionMinimumIdleSize: 1 subscriptionConnectionPoolSize: 50 slaveConnectionMinimumIdleSize: 24 slaveConnectionPoolSize: 64 masterConnectionMinimumIdleSize: 24 masterConnectionPoolSize: 64 readMode: "SLAVE" subscriptionMode: "SLAVE" nodeAddresses: - "redis://192.168.35.142:7002" - "redis://192.168.35.142:7001" - "redis://192.168.35.142:7000" scanInterval: 1000 pingConnectionInterval: 0 keepAlive: false tcpNoDelay: false threads: 16 nettyThreads: 32 codec: !<org.redisson.codec.FstCodec> {} transportMode: "NIO"

3、啓動運行日誌

啓動項目後,若是看到以下日誌,且沒有報錯的話,說明集成成功

 

 在集成成功後,經過RedisTemplate能夠進行數據的增刪改等操做,經過RedissonClient獲取各類鎖;下一篇將介紹如何使用RedissonClient提供的各類分佈式鎖。

相關文章
相關標籤/搜索