`
frank1998819
  • 浏览: 764310 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类

baike.baidu.com/ Jedis与Redisson选型对比 (转)

 
阅读更多

1  概述

1.1.       主要内容

本文的主要内容为对比Redis的两个框架:Jedis与Redisson,分析各自的优势与缺点,为项目中Java缓存方案中的Redis编程模型的选择提供参考。

2.    JedisRedisson对比

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

    通过上述对比,可以看出Redisson不仅提供了与Jedis类似的API接口,还在此基础上增加了更多高级功能,使得开发者能够更加方便地管理分布式系统中的各种复杂任务。对于那些希望提升应用程序性能和稳定性的团队来说,从...

    jedis-3.3.0.jar

    java.lang.NoSuchMethodError: redis.clients.jedis.ScanResult.getStringCursor()Ljava/lang/String; at org.crazycake.shiro.WorkAloneRedisManager.keys(WorkAloneRedisManager.java:149) at org.crazycake....

    java连接redis/jedis连接池/jedis相关工具/jedis对象存取

    Jedis是Java语言中广泛使用的Redis客户端库,它提供了丰富的API来操作Redis服务器。 首先,让我们深入了解Java如何通过Jedis连接到Redis。Jedis连接池是优化资源管理的关键,它允许开发者预先创建并复用连接,避免...

    Redis框架Jedis及Redisson对比解析

    Redis框架Jedis及Redisson对比解析 Redis是一个开源的、基于内存的数据存储系统,通常用于实现缓存、消息队列、分布式锁等功能。随着Redis的广泛应用,Java开发者需要选择合适的Redis客户端框架来实现与Redis的...

    jedis+redisson哨兵模式.zip

    2. **Redisson与哨兵模式**:相比之下,Redisson提供了内置的哨兵支持。在Redisson中,你可以通过创建一个SentinelConfig对象,配置哨兵地址和主节点名称,然后使用这个配置创建RedissonClient实例。一旦主节点出现...

    jedis-test.7z jedis 简单测试 项目工程

    jedis-test.7z jedis 简单测试 项目工程 lib 目录包含了依赖包: commons-lang-2.5.jar commons-pool2-2.4.2.jar jedis-2.9.0.jar 另: * Jedis 的源码工程(导入 eclipse 可直接运行): ...

    Redis的两个框架:Jedis与Redisson1

    在Java开发中,有两个主流的Redis客户端框架——Jedis和Redisson,它们分别提供了不同的特性和使用方式。 **1. Jedis** Jedis是Redis的原生Java客户端,它的API设计紧密贴合Redis命令,提供了对Redis所有命令的直接...

    jedis-2.9.0.jar

    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

    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)

    redis实现分布式锁(java/jedis),其中包含工具方法以及使用demo 本资源是利用java的jedis实现 redis实现分布式锁(java/jedis),其中包含工具方法以及使用demo 本资源是利用java的jedis实现

    API SpringBoot + Shiro + Java-Jwt + Redis(Jedis).zip

    Herottps: //github.com/wang926454/VueStudy/tree/master/VueStudy08-JWT问题#14 重复请求会不会生成多个token#19 跨域sso问题#29 Token刷新并发处理有疑问请扫码加QQ群交流779168604项目相关Java文档...

    jedis-2.4.2.jar

    https://github.com/xetorthio/jedis 开源Redis java client jedis源代码编译后的jar 文件.

    jedis 2.9 jar包括源代码及common-pool

    jedis 2.9jar包括源代码及common-pool 下面是官方地址,不用积分: https://github.com/xetorthio/jedis http://mvnrepository.com/artifact/redis.clients/jedis/2.9.0

    基于Spring和Redis的全球化消息队列(MessageQueue)实现.zip

    基于Spring和Redis的全球化消息队列(MessageQueue)实现spring-redis-mq基于Spring和Redis的全球化消息队列(MessageQueue)使用方法...&lt;jedis.version&gt;2.7.3&lt;/jedis.version&gt; &lt;aspectj.version&gt;1.8.7&lt;/aspectj.vers

    jedis-2.8.0.jar

    jedis-2.8.0.jar

    jedis 2.7.2 jar

    jedis 2.7.2,java 1.6.0 64环境下编译。 源代码在这里 https://github.com/xetorthio/jedis/releases/tag/jedis-2.7.2

    用于单元测试的简单 redis java mock.zip

    用于单元测试的简单 redis java mockredis-mock用于单元测试的简单 redis java mock。&lt;dependency&gt; &lt;groupId&gt;... Jedis jedis = new Jedis(server.getHost(), server.getBindPort()); ...}@Afterpublic vo

    在Apache Tomcat 7设置redis作为session store

    ./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 源码项目工程

    jedis-2.9.0 源码项目工程 导入 eclipse 可直接运行 * 基本测试: src\redis\clients\jedis\tests\JedisTest.java * 连接池测试: src\redis\clients\jedis\tests\JedisPoolTest.java * 常用命令测试: src\...

    jedis-2.9.0.jar和commons-pool2-2.6.0.jar下载(jedis连接redis数据库)

    **标题与描述解析** 标题"jedis-2.9.0.jar和commons-pool2-2.6.0.jar下载(jedis连接redis数据库)"指的是两个Java库的下载信息,用于连接Redis数据库。其中,`jedis-2.9.0.jar`是Jedis的特定版本,它是Java开发...

Global site tag (gtag.js) - Google Analytics