我是靠谱客的博主 洁净牛排,最近开发中收集的这篇文章主要介绍springboot+redission再相识,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Redission是一个在Redis的基础上实现的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。
Redission是一个基于Redis实现的分布式工具,有基本分布式对象和高级又抽象的分布式服务,为每个试图再造分布式轮子的程序员带来了大部分分布式问题的解决方法,如用作分布式锁工具。

Redission和Jedis、Lettuce的区别:

  • Jedis是Redis官方推出的用于通过Java连接Redis客户端的一个工具包,提供了Redis的各种命令支持;
  • Lettuce是一种可扩展的线程安全的 Redis 客户端,通讯框架基于Netty,支持高级的 Redis 特性,比如哨兵,集群,管道,自动重新连接和Redis数据模型。Spring Boot 2.x 开始,Lettuce 已取代 Jedis 成为首选 Redis 的客户端;
  • Redisson是架设在Redis基础上,通讯基于Netty的综合的、新型的中间件,企业级开发中使用Redis的最佳范本;

Jedis把Redis命令封装好,Lettuce则进一步有了更丰富的Api,也支持集群等模式。但是两者也都点到为止,只给了你操作Redis数据库的脚手架,而Redisson则是基于Redis、Lua和Netty建立起了成熟的分布式解决方案,甚至redis官方都推荐的一种工具集。

分布式锁
分布式锁在业务场景中解决并发问题的硬性需求,实现方式很多,下面再看看redission如何解决分布式锁的问题。
1、pom依赖

<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>3.13.6</version>
</dependency>

2、配置

@ConditionalOnProperty(prefix = "redisson",name = "address")
@ConfigurationProperties(prefix = "redisson")
@Configuration
public class RedissonConfig {
@Setter
private String address;
@Setter
private String password;
@Setter
private Integer database;
@Setter
private Integer minIdle;// 默认最小空闲连接数
@Bean
public RedissonClient redissonClient() {
Config config = new Config();
SingleServerConfig singleServerConfig = config.useSingleServer();
singleServerConfig.setAddress(address);
singleServerConfig.setDatabase(database);
singleServerConfig.setConnectionMinimumIdleSize(minIdle);
if (StrUtil.isNotBlank(password)) {
singleServerConfig.setPassword(password);
}
return Redisson.create(config);
}
}

3、简单使用

@Resource
private RedissonClient redissonClient;
RLock rLock = redissonClient.getLock(lockName);
try {
boolean isLocked = rLock.tryLock(expireTime, TimeUnit.MILLISECONDS);
if (isLocked) {
// TODO
} catch (Exception e) {
rLock.unlock();
}

简单实现了分布式锁控制。

后续会不断完善其实现原理,未完待续

最后

以上就是洁净牛排为你收集整理的springboot+redission再相识的全部内容,希望文章能够帮你解决springboot+redission再相识所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部