1 概述
1.1. 主要内容
本文的主要内容为对比Redis的两个框架:Jedis与Redisson,分析各自的优势与缺点,为项目中Java缓存方案中的Redis编程模型的选择提供参考。
2. Jedis与Redisson对比
2.1. 概况对比
Jedis是Redis的Java实现的客户端,其API提供了比较全面的Redis命令的支持;Redisson实现了分布式和可扩展的Java数据结构,和Jedis相比,功能较为简单,不支持字符串操作,不支持排序、事务、管道、分区等Redis特性。Redisson的宗旨是促进使用者对Redis的关注分离,从而让使用者能够将精力更集中地放在处理业务逻辑上。
2.2. 编程模型
Jedis中的方法调用是比较底层的暴露的Redis的API,也即Jedis中的Java方法基本和Redis的API保持着一致,了解Redis的API,也就能熟练的使用Jedis。而Redisson中的方法则是进行比较高的抽象,每个方法调用可能进行了一个或多个Redis方法调用。
如下分别为Jedis和Redisson操作的简单示例:
Jedis设置key-value与set操作:
Jedis jedis = …;
jedis.set("key", "value");
List<String> values = jedis.mget("key", "key2", "key3");
Redisson操作map:
Redisson redisson = …
RMap map = redisson.getMap("my-map"); // implement java.util.Map
map.put("key", "value");
map.containsKey("key");
map.get("key");
2.3. 可伸缩性
Jedis使用阻塞的I/O,且其方法调用都是同步的,程序流需要等到sockets处理完I/O才能执行,不支持异步。Jedis客户端实例不是线程安全的,所以需要通过连接池来使用Jedis。
Redisson使用非阻塞的I/O和基于Netty框架的事件驱动的通信层,其方法调用是异步的。Redisson的API是线程安全的,所以可以操作单个Redisson连接来完成各种操作。
2.4. 数据结构
Jedis仅支持基本的数据类型如:String、Hash、List、Set、Sorted Set。
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)。
在分布式开发中,Redisson可提供更便捷的方法。
2.5. 第三方框架整合
1 Redisson提供了和Spring框架的各项特性类似的,以Spring XML的命名空间的方式配置RedissonClient实例和它所支持的所有对象和服务;
2 Redisson完整的实现了Spring框架里的缓存机制;
3 Redisson在Redis的基础上实现了Java缓存标准规范;
4 Redisson为Apache Tomcat集群提供了基于Redis的非黏性会话管理功能。该功能支持Apache Tomcat的6、7和8版。
5 Redisson还提供了Spring Session会话管理器的实现。
相关推荐
通过上述对比,可以看出Redisson不仅提供了与Jedis类似的API接口,还在此基础上增加了更多高级功能,使得开发者能够更加方便地管理分布式系统中的各种复杂任务。对于那些希望提升应用程序性能和稳定性的团队来说,从...
java.lang.NoSuchMethodError: redis.clients.jedis.ScanResult.getStringCursor()Ljava/lang/String; at org.crazycake.shiro.WorkAloneRedisManager.keys(WorkAloneRedisManager.java:149) at org.crazycake....
Jedis是Java语言中广泛使用的Redis客户端库,它提供了丰富的API来操作Redis服务器。 首先,让我们深入了解Java如何通过Jedis连接到Redis。Jedis连接池是优化资源管理的关键,它允许开发者预先创建并复用连接,避免...
Redis框架Jedis及Redisson对比解析 Redis是一个开源的、基于内存的数据存储系统,通常用于实现缓存、消息队列、分布式锁等功能。随着Redis的广泛应用,Java开发者需要选择合适的Redis客户端框架来实现与Redis的...
2. **Redisson与哨兵模式**:相比之下,Redisson提供了内置的哨兵支持。在Redisson中,你可以通过创建一个SentinelConfig对象,配置哨兵地址和主节点名称,然后使用这个配置创建RedissonClient实例。一旦主节点出现...
jedis-test.7z jedis 简单测试 项目工程 lib 目录包含了依赖包: commons-lang-2.5.jar commons-pool2-2.4.2.jar jedis-2.9.0.jar 另: * Jedis 的源码工程(导入 eclipse 可直接运行): ...
在Java开发中,有两个主流的Redis客户端框架——Jedis和Redisson,它们分别提供了不同的特性和使用方式。 **1. Jedis** Jedis是Redis的原生Java客户端,它的API设计紧密贴合Redis命令,提供了对Redis所有命令的直接...
jedis-2.9.0.jar jedis-2.9.0 jar 包,不包含源码,源码下载地址: http://download.csdn.net/download/tan3739/9993938 测试代码: 导入依赖包: commons-lang-2.5.jar commons-pool2-2.4.2.jar jedis-2.9.0 jar ...
jedis调用redis源码Demo,直接导入工程就可以运行。 redis目录下有redis安装文件和入门电子书 redis64-2.8.9.zip redisbin_x32.zip Redis入门指南(JB51.NET).pdf Redis设计与实现.pdf src: FirestJedisTest.java ...
redis实现分布式锁(java/jedis),其中包含工具方法以及使用demo 本资源是利用java的jedis实现 redis实现分布式锁(java/jedis),其中包含工具方法以及使用demo 本资源是利用java的jedis实现
https://github.com/xetorthio/jedis 开源Redis java client jedis源代码编译后的jar 文件.
jedis 2.9jar包括源代码及common-pool 下面是官方地址,不用积分: https://github.com/xetorthio/jedis http://mvnrepository.com/artifact/redis.clients/jedis/2.9.0
jedis-2.8.0.jar
jedis 2.7.2,java 1.6.0 64环境下编译。 源代码在这里 https://github.com/xetorthio/jedis/releases/tag/jedis-2.7.2
./redis-server --port 6379 3.从http://tomcat.apache.org/download-70.cgi下载tomcat7,按照tomcat7 4.从https://github.com/xetorthio/jedis/downloads下载jedis作为java的redis客户端, 从...
jedis-2.9.0 源码项目工程 导入 eclipse 可直接运行 * 基本测试: src\redis\clients\jedis\tests\JedisTest.java * 连接池测试: src\redis\clients\jedis\tests\JedisPoolTest.java * 常用命令测试: src\...
【Xmemcached/jedis Spring Demo】是一个整合了Xmemcached和jedis的Spring示例项目,旨在帮助开发者理解和学习如何在Spring框架中集成并使用这两种流行的NoSQL客户端库。Xmemcached是Java编写的高效、易用的...
而要与Redis进行交互,就需要依赖相应的客户端库,其中Jedis是Java社区广泛使用的Redis客户端。在这个场景下,"commons-pool.jar"和"jedis-2.4.2.jar"是两个关键的Java库,它们允许开发者在Java应用中便捷地操作...
包含Java说明文件、配置代码、redis相应版本的Jar 1、代码片段要求的框架为:SpringMVC,但原理都是一样的,采用其他方式也可以。 2、RedisMng为简单封装的接口,不封装,直接采用redisTemplate也可以。
Redis的官方推荐Java客户端——Jedis 此Jar包为Jedis 2.9.0版(2016年7月22日发布) 支持Redis 3.0 (亲测有效) 使用方法: import redis.clients.jedis.Jedis; Jedis jedis = new Jedis("localhost"); jedis.set...