
Redisson 快速上手指南两步接入 Valkey / Redis 的 Java 实时数据平台【免费下载链接】redissonRedisson: Valkey Redis Java Client and Real-Time Data Platform. Sync/Async/RxJava/Reactive API. Over 50 Valkey and Redis based Java objects and services: Set, Multimap, SortedSet, Map, List, Queue, Deque, Semaphore, Lock, AtomicLong, Map Reduce, Bloom filter, Spring, Tomcat, Scheduler, JCache API, Hibernate, RPC, local cache..项目地址: https://gitcode.com/GitHub_Trending/re/redisson导读本指南基于 Redisson 官方快速入门文档docs/getting-started.md整理而成面向需要在 Java 项目中接入 Valkey 或 Redis 的开发者。你将掌握通过 Maven / Gradle 引入依赖、使用Config配置对象或 YAML 文件创建客户端实例、获取RMap、RLock、RExecutorService等 50 分布式对象与服务并了解 Sync / Async / Reactive / RxJava3 四套 API 的使用方式以及 Spring Boot、JCache、Hibernate 等主流框架的集成入口。一、概述两步走快速接入Redisson 的快速入门可以归纳为两个步骤添加依赖—— 在pom.xml或build.gradle中声明 Redisson 坐标。开始开发—— 创建Config配置对象 → 创建RedissonClient实例 → 获取所需的分布式对象或服务。整个过程无需修改 Redis / Valkey 服务端Redisson 完全以客户端库的形式工作。二、添加依赖Maven / GradleRedisson 分为Community Edition社区版与Redisson PRO商业版两个版本坐标不同2.1 Community Edition社区版Mavendependency groupIdorg.redisson/groupId artifactIdredisson/artifactId versionxVERSIONx/version /dependencyGradlecompile org.redisson:redisson:xVERSIONx2.2 Redisson PRO商业版Mavendependency groupIdpro.redisson/groupId artifactIdredisson/artifactId versionxVERSIONx/version /dependencyGradlecompile pro.redisson:redisson:xVERSIONx说明xVERSIONx为文档中的版本占位符实际使用时请替换为发布版本号。PRO 版需要配置 License key详见 License key 配置。从本仓库的 Maven 父工程 pom.xml 可以看到仓库按功能拆分为redisson核心库、redisson-all、redisson-tomcat、redisson-mybatis、redisson-hibernate、redisson-helidon、redisson-quarkus、redisson-micronaut、redisson-spring等多个模块其中核心模块 redisson/pom.xml 对应上文的org.redisson:redisson坐标。仓库当前版本为4.7.1-SNAPSHOT见 pom.xml即快照版本。注意本仓库不包含 redisson-examples 示例仓库上文涉及的 Java 示例代码均以 docs/getting-started.md 文档内容为蓝本可结合 docs/configuration.md 查看完整配置项。三、创建配置对象ConfigRedisson 通过Config对象完成所有连接配置。既可以用 Java 代码编程式配置也可以用 YAML 文件声明式配置。3.1 支持的模式官方支持以下七种部署模式配置入口不同详见 docs/configuration.md模式配置入口适用场景单节点模式config.useSingleServer()单个 Valkey / Redis 节点复制模式config.useReplicatedServers()多个主节点数据复制如云服务多副本集群模式config.useClusterServers()Redis / Valkey Cluster哨兵模式config.useSentinelServers()Sentinel 高可用代理模式config.useProxyServers()经代理访问多集群模式config.useMultiClusterServers()多个集群间数据复制多哨兵模式config.useMultiSentinelServers()多个哨兵部署间数据复制3.2 编程式配置示例集群模式Config config new Config(); config.useClusterServers() // 使用 redis:// 连接 Redis // 使用 valkey:// 连接 Valkey // 使用 valkeys:// 连接 Valkey SSL // 使用 rediss:// 连接 Redis SSL .addNodeAddress(redis://127.0.0.1:7181);useClusterServers()返回ClusterServersConfig通过链式调用设置参数。addNodeAddress()只需提供集群中任意节点地址Redisson 会自动发现集群拓扑。可多次调用添加多个节点。协议前缀很关键redis://Redis 明文、rediss://Redis SSL、valkey://Valkey 明文、valkeys://Valkey SSL。3.3 从 YAML 文件读取配置// 或从文件读取配置 config Config.fromYAML(new File(config-file.yaml));Config类提供了fromYAML的重载版本支持从字符串、InputStream、File、URL、Reader等来源加载见 redisson/src/main/java/org/redisson/config/Config.java。3.4 编程式配置默认行为若完全不传配置Redisson.create()会使用默认单节点配置连接redis://127.0.0.1:6379见 Redisson.java 的实现public static RedissonClient create() { Config config new Config(); config.useSingleServer() .setAddress(redis://127.0.0.1:6379); return create(config); }四、创建 Redisson 实例四套 APIRedisson 提供一套核心实例 三套衍生 API覆盖从阻塞同步到响应式编程的全部诉求// Sync 和 Async API RedissonClient redisson Redisson.create(config); // Reactive API RedissonReactiveClient redissonReactive redisson.reactive(); // RxJava3 API RedissonRxClient redissonRx redisson.rxJava();RedissonClient提供同步Sync与异步Async两套方法Async 方法返回RFutureT/CompletionStage。redisson.reactive()返回基于 Project Reactor 的RedissonReactiveClient。redisson.rxJava()返回基于 RxJava3 的RedissonRxClient。在源码中Redisson类正是通过create(config)工厂方法与reactive()、rxJava()转换方法实现的见 Redisson.java。生命周期管理线程安全与单例复用文档特别强调RedissonClient是线程安全的因此在应用中只创建一个实例作为共享单例复用。常见的模式是让 Redisson 与应用的启停保持一致应用停止时关闭客户端。// 应用关闭时 redisson.shutdown();从RedissonClient接口可以看到完整的生命周期方法见 RedissonClient.javavoid shutdown(); void shutdown(long quietPeriod, long timeout, TimeUnit unit);shutdown()立即关闭。shutdown(quietPeriod, timeout, unit)优雅关闭等待 quietPeriod 后强制关闭与ExecutorService的关闭语义一致。建议在 Web 容器Spring / Tomcat / Quarkus 等中通过框架的PreDestroy回调或DisposableBean关闭客户端避免 JVM 退出时资源泄漏。仓库中各集成模块如redisson-spring、redisson-quarkus均提供了与框架生命周期绑定的关闭逻辑可参考 integration-with-spring.md。五、获取 Valkey / Redis 对象与服务客户端实例创建完成后即可通过名称获取各类分布式对象。以下为官方文档的完整示例// java.util.concurrent.ConcurrentMap RMapMyKey, MyValue map redisson.getMap(myMap); RMapReactiveMyKey, MyValue mapReactive redissonReactive.getMap(myMap); RMapRxMyKey, MyValue mapRx redissonRx.getMap(myMap); // 客户端本地缓存Client Side Caching RLocalCachedMapMyKey, MyValue localCachedMap redisson.getLocalCachedMap(LocalCachedMapOptions.MyKey, MyValuename(myMap)); // java.util.concurrent.locks.Lock RLock lock redisson.getLock(myLock); RLockReactive lockReactive redissonReactive.getLock(myLock); RLockRx lockRx redissonRx.getLock(myLock); // java.util.concurrent.ExecutorService RExecutorService executor redisson.getExecutorService(myExecutorService); // 还有 50 多种基于 Redis / Valkey 的 Java 对象与服务...5.1 三套 API 命名约定API接口前缀示例Sync / AsyncR无后缀RMap、RLockReactiveR...ReactiveRMapReactive、RLockReactiveRxJava3R...RxRMapRx、RLockRxRedissonClient接口中列出了全部 50 对象的获取方法见 RedissonClient.java例如getArray、getMap、getLock、getBucket、getRateLimiter、getSearch、getBinaryStream、getHyperLogLog、getGeo、getSetCache等多数方法还提供「仅名称」「名称 Codec」「Options 对象」三种重载。5.2 关键对象速览RMapK, V分布式 Map对标java.util.concurrent.ConcurrentMap支持put、get、remove及原子操作addAndGet等。仓库测试 RedissonMapTest.java 中大量验证了 Map 的读写、监听器如MapIncrListener、MapWriter 等功能。RLocalCachedMap客户端本地缓存命中本地内存减少网络 RTT通过LocalCachedMapOptions指定缓存策略是官方文档展示的客户端缓存能力入口详见 client-side-caching.md。RLock分布式可重入锁对标java.util.concurrent.locks.Lock支持看门狗自动续期、公平锁等详见 locks-and-synchronizers.md。RExecutorService分布式任务执行器对标java.util.concurrent.ExecutorService可实现跨 JVM 的任务调度与执行。每个对象都通过名称如myMap绑定到 Redis / Valkey 中的实际 Key不同客户端进程只要使用相同名称即可共享同一份数据。六、Framework and platform integrations框架与平台集成Redisson 不止是一个客户端还提供了大量框架集成模块。官方文档列出了以下集成入口全部指向仓库内的对应文档集成项说明详细文档Spring Boot StarterSpring Boot 自动配置integration-with-spring.mdSpring Data RedisSpring Data Redis 连接器integration-with-spring.mdSpring Cloud Stream以 Valkey / Redis 作为消息代理的 Binderintegration-with-spring.mdQuarkus含 Quarkus Cachemicroservices-integration.mdMicronaut含 Micronaut Session 与 Cachemicroservices-integration.mdHelidonHelidon 支持microservices-integration.mdJCache API (JSR-107)JCache Providercache-api-implementations.mdMyBatis CacheMyBatis 二级缓存cache-api-implementations.mdHibernate CacheHibernate 二级缓存cache-api-implementations.mdTomcat Session ManagementApache Tomcat 分布式会话存储web-session-management.mdJMS APIJava Message Service Providermessaging.md这些集成在仓库中均有对应模块例如 redisson-spring、redisson-quarkus、redisson-micronaut、redisson-hibernate、redisson-tomcat、redisson-mybatis 等目录。七、进阶从「快速开始」到「深度配置」快速入门只是起点掌握以下配置能力后才能让 Redisson 在真实生产环境中稳定运行7.1 常用配置项示例单节点模式以 docs/configuration.md 中的单节点 YAML 配置为例--- singleServerConfig: idleConnectionTimeout: 10000 connectTimeout: 10000 timeout: 3000 retryAttempts: 4 retryDelay: !org.redisson.config.EqualJitterDelay {baseDelay: PT1S, maxDelay: PT2S} reconnectionDelay: !org.redisson.config.EqualJitterDelay {baseDelay: PT0.1S, maxDelay: PT10S} subscriptionsPerConnection: 5 clientName: null address: redis://127.0.0.1:6379 subscriptionConnectionMinimumIdleSize: 1 subscriptionConnectionPoolSize: 50 connectionMinimumIdleSize: 24 connectionPoolSize: 64 database: 0 dnsMonitoringInterval: 5000 dnsMonitoringTimes: 1 password: null username: null threads: 16 nettyThreads: 32 codec: !org.redisson.codec.Kryo5Codec {} transportMode: NIO关键参数解读address单节点地址host:port格式SSL 时用rediss://Valkey 使用valkey://Valkey Unix Domain Socket 使用valkeyuds://Redis UDS 使用redisuds://。connectionMinimumIdleSize最小空闲连接数默认24。connectionPoolSize连接池最大连接数默认64。database连接使用的数据库索引默认0。dnsMonitoringIntervalDNS 变化监控间隔毫秒默认5000设为-1可禁用。codec序列化编解码器默认Kryo5Codec。transportModeNetty 传输模式默认NIO。7.2 集群模式的核心参数从 docs/configuration.md 可以看到集群模式下特有的配置项scanInterval集群拓扑扫描间隔毫秒默认1000Redisson 借此自动感知节点上下线与槽位变化。checkSlotsCoverage启动时检查槽位覆盖默认true。subscriptionMode订阅节点类型可选SLAVE/MASTER默认MASTER。natMapperNAT 映射器用于将内部服务器 IP 映射为外部可达地址支持HostPortNatMapper、HostNatMapper两种实现。7.3 从 YAML 加载的两种方式配置可从外部文件加载适合部署环境差异化Config config Config.fromYAML(new File(config-file.yaml)); RedissonClient redisson Redisson.create(config);也可以将内存中的Config对象导出为 YAML 字符串用于存档或审计Config config new Config(); // ... 设置大量参数 String yamlFormat config.toYAML();7.4 变量替换与敏感信息保护变量语法配置中可使用${variable_name}占位符启动时按「Java 系统属性 环境变量」的优先级顺序替换也支持 shell 风格的默认值语法${REDIS_PORT:-6379}。密码加密PRO 版支持 AES 加密配置文件中的密码密钥基于PBKDF2WithHmacSHA512派生采用AES/GCM/NoPadding方案密文以{aes}前缀标识配合secretKey配置项使用。详见 docs/configuration.md。八、更多学习路径官方文档还提供了Overviewdocs/overview.md帮助理解整体架构以及Configurationdocs/configuration.md查看全部模式的完整配置。数据与服务对象Map、Set、Queue、Lock、Bloom Filter、RateLimiter 等的详细用法见 docs/data-and-services 目录包括 collections.md、objects.md、locks-and-synchronizers.md、probabilistic-structures.md 等。底层客户端、事务、流水线、脚本、消息等高级能力的文档入口low-level-client.md、transactions.md、pipelining.md、server-side-scripting.md、publish-subscribe.md。更多代码示例可参考官方示例仓库本仓库不包含示例代码目录。九、小结Redisson 的快速上手路径清晰明确加依赖 → 配 Config → 建 Client → 取对象。四套 APISync / Async / Reactive / RxJava3让不同技术栈的团队都能以熟悉的编程模型使用同一套分布式数据结构线程安全的设计支持全局单例复用七种部署模式与 YAML / 编程式双配置通道保证了从开发到生产的平滑过渡。本文所引源码与配置均可直接在仓库中查看Redisson.java、Config.java、RedissonClient.java、configuration.md。【免费下载链接】redissonRedisson: Valkey Redis Java Client and Real-Time Data Platform. Sync/Async/RxJava/Reactive API. Over 50 Valkey and Redis based Java objects and services: Set, Multimap, SortedSet, Map, List, Queue, Deque, Semaphore, Lock, AtomicLong, Map Reduce, Bloom filter, Spring, Tomcat, Scheduler, JCache API, Hibernate, RPC, local cache..项目地址: https://gitcode.com/GitHub_Trending/re/redisson创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考