欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Redisson Java整合入门实例

程序员文章站 2022-04-03 15:56:59
1. 概述...

1. 概述

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的关注分离,从而让使用者能够将精力更集中地放在处理业务逻辑上。

中文官方文档链接:https://github.com/redisson/redisson/wiki/1.-%E6%A6%82%E8%BF%B0

2. Java 整合实例

2.1 安装并启动Redis

CentOS7 下载、安装并运行 Redis

2.2 代码实例

创建一个 Maven 工程,引入 Redisson 依赖,pom.xml 如下所示,也引入了 netty,是因为 Redisson 底层使用的 Netty框架:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.syrdbt</groupId>
    <artifactId>redisson-study</artifactId>
    <version>1.0-SNAPSHOT</version>

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

</project>

Java 代码实例,Test.java :

import org.redisson.Redisson;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;

import java.util.concurrent.TimeUnit;

/**
 * @author syrdbt
 * @date 2020-11-20
 */
public class Test {
    public static void main(String[] args) {
        // 默认连接上127.0.0.1:6379
        RedissonClient client = Redisson.create();
        // 一个分布式锁,指明锁的名称
        RLock rLock = client.getLock("lockName");
        try {
            rLock.tryLock(10, 30, TimeUnit.SECONDS);
        } catch (InterruptedException e) {
            throw new RuntimeException("获取锁失败~~~");
        }

        try {
            System.out.println("获取锁成功~~~");
            for (int i=1; i<=10; i++) {
                System.out.println("执行任务中...");
            }
        } catch (Exception e) {
            throw new RuntimeException("任务执行失败");
        } finally {
            // 释放锁
            System.out.println("释放锁成功~~~");
            rLock.unlock();
        }

        client.shutdown();
    }
}

测试结果,运行截图:
Redisson Java整合入门实例

3. Redisson 的结构

Redisson作为独立节点 可以用于独立执行其他节点发布到分布式执行服务 和 分布式调度任务服务 里的远程任务。
Redisson Java整合入门实例

本文地址:https://blog.csdn.net/qq_38737992/article/details/109963430