Redisson 源码分析 —— 调试环境搭建

本文基于 Redisson 3.11.4-SNAPSHOT 版本

依赖工具

  • Maven
  • Git
  • JDK
  • IntelliJ
  • IDEA

源码拉取

从官方仓库 https://github.com/redisson/redisson Fork 出属于自己的仓库。

  • 为什么要 Fork ?既然开始阅读、调试源码,我们可能会写一些注释,有了自己的仓库,可以进行自由的提交。
    在拉取项目的过程中,我们来看看每个 Redisson 的子项目:\
  • redisson :Redisson 实现。
  • redisson-tomcat :Redisson 集成到 Tomcat 中,实现分布式 Session 功能。
  • redisson-spring-data :Redisson 集成到 Spring Data Redis 中。
  • redisson-spring-boot-starter :Redisson 实现的 Spring Boot Starter ,方便我们在使用 Spring Boot 的项目中,自动化配置 Redisson 。
  • redisson-hibernate :Redisson 集成到 Hibernate 中,提供二级缓存的功能。
    Redisson 团队,还是很勤劳的,主动集成了这么多框架。当然,也是因为 Redisson 出的比较晚,前有 Jedis 后有 Lettuce ,不努力点可能无法被开发者所接受。

测试运行

在测试目录下,创建 YunaiDebugDemo 类,编写代码如下:

public class YunaiDebugDemo {

    public static void main(String[] args) throws InterruptedException {
        // 创建 RedissonClient 对象
        RedissonClient client = Redisson.create();

        // 创建 RRateLimiter 对象
        RRateLimiter rateLimiter = client.getRateLimiter("myRateLimiter");
        // 初始化:最大流速 = 每 1 分钟产生 2 个令牌
        rateLimiter.trySetRate(RateType.OVERALL, 2, 1, RateIntervalUnit.SECONDS);

        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        for (int i = 0; i < 5; i++) {
            System.out.println(String.format("%s:获得锁结果(%s)", simpleDateFormat.format(new Date()),
                    rateLimiter.tryAcquire()));
            Thread.sleep(250L);
        }
    }

}

进行测试。点击运行,输出结果如下:

2019-10-02 10:48:00:获得锁结果(true)
2019-10-02 10:48:01:获得锁结果(true)
2019-10-02 10:48:01:获得锁结果(false)
2019-10-02 10:48:01:获得锁结果(false)
2019-10-02 10:48:02:获得锁结果(true)

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值