Springboot整合Redisson

2020-08-24 18:27:23 1718

前言

redisson官方网站: https://redisson.org

Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务。其中包括(BitSet、Set、Multimap、SortedSet、Map、List、Queue、BlockingQueue、Deque、BlockingDeque、Semaphore、Lock、AtomicLong、CountDownLatch、Publish / Subscribe、Bloom filter、Remote service、Spring cache、Executor service、Live Object service、Scheduler service) Redisson提供了使用Redis的最简单和最便捷的方法。Redisson的宗旨是促进使用者对Redis的关注分离(Separation of Concern),从而让使用者能够将精力更集中地放在处理业务逻辑上。

有兴趣的可以查看redisson官方wiki



整合springboot

1、在POM文件中添加依赖

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

2、添加redisson配置

#Redisson配置 https://github.com/redisson/redisson/wiki/2.-%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95
singleServerConfig:
    address: redis://127.0.0.1:6379
    password: null
    clientName: null
    database: 2 #选择使用哪个数据库0~15
    idleConnectionTimeout: 10000
    pingTimeout: 1000
    connectTimeout: 10000
    timeout: 3000
    retryAttempts: 3
    retryInterval: 1500
    reconnectionTimeout: 3000
    failedAttempts: 3
    subscriptionsPerConnection: 5
    subscriptionConnectionMinimumIdleSize: 1
    subscriptionConnectionPoolSize: 50
    connectionMinimumIdleSize: 32
    connectionPoolSize: 64
    dnsMonitoringInterval: 5000
    #dnsMonitoring: false

threads: 0
nettyThreads: 0
codec:
    class: "org.redisson.codec.JsonJacksonCodec"
transportMode: "NIO"

具体想加什么配置,可见官方配置wiki


3、添加启动配置类

@Configuration
public class RedissonConfig {

    @Bean
    public RedissonClient redisson() throws IOException {
        // 本例子使用的是yaml格式的配置文件,读取使用Config.fromYAML,如果是Json文件,则使用Config.fromJSON
        Config config = Config.fromYAML(RedissonConfig.class.getClassLoader().getResource("redisson-config.yml"));
        return Redisson.create(config);
    }
}


4、添加测试用例

@SpringBootTest(classes = {EbootApplication.class})
public class RedissonTest{

    @Autowired
    private RedissonClient redissonClient;

    @Test
    public void testRedisson() throws Exception {
        for (int i = 0; i < 10; i++) {
            new Thread(() -> {
                RLock fairLock = redissonClient.getFairLock("anyLock");
                // 尝试加锁,最多等待5秒,上锁以后100秒自动解锁
                Boolean res = null;
                try {
                    res = fairLock.tryLock(2, 100, TimeUnit.SECONDS);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println(res);
            }).start();
        }

        Thread.sleep(10000);
    }
}

5、执行结果

image.png

至此,就完成了redisson在springboot中的配置。更多使用可查阅官方wiki。

相关文章

分类

{{name}}

标签

{{name}}

相关文章

广告区域
没有相关数据