記錄一次Redisson與SpringBoot整合配置

Rediison pom

版本問(wèn)題請(qǐng)參考:https://github.com/redisson/redisson/tree/master/redisson-spring-boot-starter

    <!--注意版本問(wèn)題 我的SpringBoot版本是2.1.0.RELEASE-->
    <dependency>
      <groupId>org.redisson</groupId>
      <artifactId>redisson-spring-boot-starter</artifactId>
      <version>3.15.6</version>
      <exclusions>
        <exclusion>
          <groupId>org.redisson</groupId>
          <artifactId>redisson-spring-data-24</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.redisson</groupId>
      <artifactId>redisson-spring-data-21</artifactId>
      <version>3.15.6</version>
    </dependency>

Rediison yml 配置

spring:
  application:
    # 模塊名稱
    name: xxx
  redis:
    # redis地址
    host: 127.0.0.1
    # redis端口
    port: 6379
    # redis索引
    database: 0
    # redis密碼
    password: 
    # redis連接超時(shí)時(shí)間
    timeout: 10s
    lettuce:
      pool:
        # redis連接池中的最小空閑連接
        min-idle: 0
        # redis連接池中的最大空閑連接
        max-idle: 8
        # redis連接池的最大數(shù)據(jù)庫(kù)連接數(shù)
        max-active: 8
        # redis連接池最大阻塞等待時(shí)間(使用負(fù)值表示沒(méi)有限制)
        max-wait: -1ms
  redisson:
    config: |
      singleServerConfig:
        #連接空閑超時(shí),單位:毫秒
        idleConnectionTimeout: 10000
        #連接超時(shí),單位:毫秒
        connectTimeout: 10000
        #命令等待超時(shí),單位:毫秒
        timeout: 3000
        #命令失敗重試次數(shù)
        retryAttempts: 3
        #命令重試發(fā)送時(shí)間間隔,單位:毫秒
        retryInterval: 1500
        #單個(gè)連接最大訂閱數(shù)量
        subscriptionsPerConnection: 5
        #客戶端名稱
        clientName: null
        #節(jié)點(diǎn)地址
        address: "redis://127.0.0.1:6379"
        #密碼
        password: 
        #發(fā)布和訂閱連接的最小空閑連接數(shù)
        subscriptionConnectionMinimumIdleSize: 1
        #發(fā)布和訂閱連接池大小
        subscriptionConnectionPoolSize: 50
        #最小空閑連接數(shù)
        connectionMinimumIdleSize: 32
        #連接池大小
        connectionPoolSize: 64
        #數(shù)據(jù)庫(kù)編號(hào)
        database: 0
        #DNS監(jiān)測(cè)時(shí)間間隔,單位:毫秒
        dnsMonitoringInterval: 5000
      #線程池?cái)?shù)量
      threads: 0
      #Netty線程池?cái)?shù)量
      nettyThreads: 0
      #編碼
      codec: !<org.redisson.codec.JsonJacksonCodec> {}
      #傳輸模式
      "transportMode":"NIO"

封裝成類和方法

@Component
public class RedissonLock {

    @Autowired
    private RedissonClient redissonClient;

    @Value("${redissonlock.waitTime}")
    private String waitTime;

    @Value("${redissonlock.leaseTime}")
    private String leaseTime;

    /**
     * 加鎖
     *
     * @param LockName key名稱
     * @return
     * @throws InterruptedException
     */
    public Boolean acquire(String LockName) throws InterruptedException {
        RLock lock = redissonClient.getLock(LockName);
        return lock.tryLock(Long.valueOf(waitTime), Long.valueOf(leaseTime), TimeUnit.SECONDS);
    }

    /**
     * 解鎖
     *
     * @param LockName key名稱
     */
    public void release(String LockName) {
        RLock lock = redissonClient.getLock(LockName);
        if (lock != null && lock.isHeldByCurrentThread()) {
            lock.unlock();
        }
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容