Redisson:Java 开发者的 Redis 全家桶

Redisson 在 GitHub 上拿到了 24,356 个 Star。

这是一个 Java 平台的 Redis 和 Valkey 客户端,但说"客户端"其实不够准确。它更像一整套分布式数据平台,把 Redis 的能力用 Java 的方式重新封装了一遍。

正文顶部截图

1、 它解决什么问题

用过 Redis Java 客户端的人大多有过类似的体验:Jedis 直接操作命令,代码里全是字符串拼接;Lettuce 功能够用但高级特性得自己封装。想用分布式锁?自己写。想用分布式队列?自己写。想用布隆过滤器?还是自己写。

Redisson 的思路是,既然这些分布式场景大家都得实现,不如做成开箱即用的 Java 对象。

你在代码里操作一个 RMap,背后自动处理了序列化、连接管理、故障转移。用一个 RLock,就拿到了一个分布式锁,不用关心底层的 Redis 命令。

2、 支持哪些东西

先说数据结构。除了基本的 String、List、Set、Map,Redisson 提供了 Bitset、布隆过滤器、HyperLogLog、限流器、地理空间对象。计数器方面有 AtomicLong、AtomicDouble、LongAdder。队列有可靠队列、阻塞队列、优先队列、环形缓冲区。

分布式锁和同步器是一大卖点。Lock、FairLock、MultiLock、RedLock、ReadWriteLock、Semaphore、CountDownLatch,常用的同步原语全覆盖。

服务层面支持远程服务调用、执行器服务、调度器服务、MapReduce。

README区域截图

3、 生态集成

Spring Boot Starter、Spring Cache、Spring Session、Spring Transaction Manager、Spring Cloud Stream、Spring Data Redis,Spring 全家桶基本都接上了。

缓存层面支持 JCache (JSR-107)、Hibernate Cache、MyBatis Cache、Quarkus Cache、Micronaut Cache。微服务框架方面支持 Helidon、Micronaut、Quarkus。会话管理支持 Apache Tomcat Session、Spring Session、Micronaut Session。

序列化支持 Kryo、Jackson JSON、Avro、Smile、CBOR、MsgPack、Protobuf、LZ4、Snappy 等。

4、 部署兼容性

支持的部署模式相当全:单机、主从、哨兵、集群、复制模式、代理模式,以及多集群和多哨兵模式。从 Redis 3.0 到最新版本都兼容,Valkey 从 7.2.5 开始支持。JDK 1.8 以上都能跑,甚至 Android 也能用。

5、 适合谁

已经在用 Redis 做分布式协调的 Java 团队,不想在基础设施层重复造轮子的场景。特别是项目里需要用到分布式锁、可靠队列、分布式缓存这些能力的时候,Redisson 能省掉大量胶水代码。

项目本身有 2000 多个单元测试,社区维护活跃,24K+ 的 Star 说明经过了大量生产环境的验证。

0 多个单元测试,社区维护活跃,24K+ 的 Star 说明经过了大量生产环境的验证。

更多推荐