`
frank1998819
  • 浏览: 758597 次
  • 性别: 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实现

    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

    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

    在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\...

    Xmemcached/jedis springdemo

    【Xmemcached/jedis Spring Demo】是一个整合了Xmemcached和jedis的Spring示例项目,旨在帮助开发者理解和学习如何在Spring框架中集成并使用这两种流行的NoSQL客户端库。Xmemcached是Java编写的高效、易用的...

    commons-pool.jar,jedis-2.4.2.jar

    而要与Redis进行交互,就需要依赖相应的客户端库,其中Jedis是Java社区广泛使用的Redis客户端。在这个场景下,"commons-pool.jar"和"jedis-2.4.2.jar"是两个关键的Java库,它们允许开发者在Java应用中便捷地操作...

    spring-data-redis-1.6.0.RELEASE.jar + jedis-2.7.2.jar.rar

    包含Java说明文件、配置代码、redis相应版本的Jar 1、代码片段要求的框架为:SpringMVC,但原理都是一样的,采用其他方式也可以。 2、RedisMng为简单封装的接口,不封装,直接采用redisTemplate也可以。

    Redis Java客户端Jedis 2.9.0 jar包(含common-pool2)

    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...

Global site tag (gtag.js) - Google Analytics