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。
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、执行结果
至此,就完成了redisson在springboot中的配置。更多使用可查阅官方wiki。