• redis分布式锁(一)———springboot 整合 redisson(starter方式)


      前段项目中大量用到了redis的分布式锁,近期总结一下,先从springboot整合redisson说起。

      Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务。其中包括(BitSetSetMultimapSortedSetMapListQueueBlockingQueueDequeBlockingDequeSemaphoreLockAtomicLongCountDownLatchPublish / SubscribeBloom filterRemote serviceSpring cacheExecutor serviceLive Object serviceScheduler service) Redisson提供了使用Redis的最简单和最便捷的方法。 

    一、添加maven依赖

    在pom.xml加入如下配置

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

    二、修改yml配置文件

    至于怎么配置,可以查看 starter包下面的RedissonAutoConfiguration、RedissonProperties类,会了解到需要设置哪些参数。

    在了解了需要设置哪些参数后,在springboot的配置文件中加入如下配置:

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

    然后,在resource目录新建redisson.yml文件,加入如下配置

    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的配置文件里(不推荐),如下:

    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"

    三、启动运行

    启动项目后,如果看到如下日志,且没有报错的话,说明集成成功

     在集成成功后,通过RedissonClient可以获取各种锁;下一篇将介绍如何使用RedissonClient提供的各种分布式锁。

  • 相关阅读:
    qml: QtCharts模块得使用(数据整合和显示) ---- <二>
    qml: QtCharts模块的使用(基本配置)------<一>
    【转载】Qt之JSON生成与解析
    qml: 支持的基本类型
    opencv: 基本知识;
    qml: 模块定义与使用
    Android studio开发中遇到的错误
    阅读笔记——《人月神话》5
    Android studio Adapter基础
    Android studio Date & Time组件2
  • 原文地址:https://www.cnblogs.com/RingWu/p/11871413.html
Copyright © 2020-2023  润新知