redis实战(1):redis三个java客户端选择 清疚 2022-11-07 11:57 117阅读 0赞 > 前面已经学完redis理论,现在开始实战。因为本人java为主,先比较下redis的三个java客户端项目; -------------------- ### 1 概述 ### > 目前主要有三种jedis、redisson、lettuce * Jedis是Redis的Java实现的客户端,其API提供了比较全面的Redis命令的支持; * Jedis中的方法调用是比较底层的暴露的Redis的API,也即Jedis中的Java方法基本和Redis的API保持着一致,了解Redis的API,也就能熟练的使用Jedis。 * Redisson实现了分布式和可扩展的Java数据结构,提供很多分布式相关操作服务,例如,分布式锁,分布式集合,可通过Redis支持延迟队列。和Jedis相比,功能较为简单,不支持字符串操作,不支持排序、事务、管道、分区等Redis特性。 Redisson的宗旨是促进使用者对Redis的关注分离,从而让使用者能够将精力更集中地放在处理业务逻辑上。 * Redisson中的方法则是进行比较高的抽象,每个方法调用可能进行了一个或多个Redis方法调用。 * Lettuce:高级Redis客户端,用于线程安全同步,异步和响应使用,支持集群,Sentinel,管道和编码器。目前springboot默认使用的客户端。 -------------------- **伸缩性:** * Jedis:使用阻塞的I/O,且其方法调用都是同步的,程序流需要等到sockets处理完I/O才能执行,不支持异步。Jedis客户端实例不是线程安全的,所以需要通过连接池来使用Jedis。 * Jedis仅支持基本的数据类型如:String、Hash、List、Set、Sorted Set。 * Redisson:基于Netty框架的事件驱动的通信层,其方法调用是异步的。Redisson的API是线程安全的,所以可以操作单个Redisson连接来完成各种操作。 * Redisson不仅提供了一系列的分布式Java常用对象,基本可以与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)。 * Lettuce:基于Netty框架的事件驱动的通信层,其方法调用是异步的。Lettuce的API是线程安全的,所以可以操作单个Lettuce连接来完成各种操作。 -------------------- ### 2 Jedis ### > jedis就是集成了redis的一些命令操作,封装了redis的java客户端。提供了连接池管理。一般不直接使用jedis,而是在其上在封装一层,作为业务的使用。如果用spring的话,可以看看spring 封装的 redis [Spring Data Redis][] **优点**: * 提供了比较全面的 Redis 操作特性的 API * API 基本与 Redis 的指令一一对应,使用简单易理解 **缺点:** * 同步阻塞 IO * 不支持异步 * 线程不安全 -------------------- ### 3 Redisson ### **优点:** * 实现了分布式特性和可扩展的 Java 数据结构,适合分布式开发 * API 线程安全 * 基于 Netty 框架的事件驱动的通信,可异步调用 **缺点:** * API 更抽象,学习使用成本高 -------------------- ### 4 Lettuce ### **优点:** * 线程安全 * 基于 Netty 框架的事件驱动的通信,可异步调用 * 适用于分布式缓存 **缺点:** * API 更抽象,学习使用成本高 -------------------- ### 5 总结: ### > 优先使用Lettuce,如果需要分布式锁,分布式集合等分布式的高级特性,添加Redisson结合使用,因为Redisson本身对字符串的操作支持很差。 -------------------- Jedis api 在线网址:http://tool.oschina.net/uploads/apidocs/redis/clients/jedis/Jedis.html redisson 官网地址:https://redisson.org/ redisson git项目地址:https://github.com/redisson/redisson lettuce 官网地址:https://lettuce.io/ lettuce git项目地址:https://github.com/lettuce-io/lettuce-core [Spring Data Redis]: https://spring.io/projects/spring-data-redis
还没有评论,来说两句吧...