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

2024-06-09 01:12

本文主要是介绍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)

这篇关于Redisson 源码分析 —— 调试环境搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1043835

相关文章

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get