功能比较:Redisson vs Jedis

     Redis最流行的两个Java客户端库是Redisson和Jedis。Redisson提供内存中的数据网格功能,支持Redis的各种分布式对象和服务。另一方面,Jedis是一个更轻量级的产品,它缺乏其他库的某些功能。
    如果你正在为Redis寻找一个Java客户端库,你可能会想Redisson和Jedis的优缺点。在本文中,我们将比较和对比Redisson和Jedis提供的不同功能。

一 、分布式集合

Redisson

Jedis

Map

plain commands only

Multimap

×

Set

plain commands only

List

plain commands only

Queue

plain commands only

Deque

plain commands only

SortedSet

×

ScoredSortedSet

plain commands only

PriorityQueue

×

PriorityDeque

×

DelayedQueue

×

Stream

plain commands only

RingBuffer

×

TransferQueue

×

TimeSeries

×

Redisson实现了许多不同的Java对象,包括分布式集合。这些Redisson对象帮助Java程序员使用他们在Java中习惯的许多熟悉的数据结构。

Redisson中的分布式集合列表包括:

  • Map
  • Multimap
  • Set
  • List
  • Queue
  • Deque
  • SortedSet
  • ScoredSortedSet
  • PriorityQueue
  • PriorityDeque
  • DelayedQueue
  • Stream
  • RingBuffer

另一方面,Jedis对Redis中分布式集合的支持要少得多。
只有Jedis中的普通命令才支持以下对象:

  • Map
  • Multimap
  • Set
  • List
  • Queue
  • Deque
  • ScoredSortedSet

二、分布式锁和同步器

Redisson

Jedis

Lock

×

Semaphore

×

CountDownLatch

×

FairLock

×

MultiLock

×

ReadWriteLock

×

 当处理分布式系统时,锁和同步的问题变得更加复杂,因为不同的客户端位于不同的机器上。
幸运的是,Redisson支持一些常见的Java锁和同步器用于分布式计算,例如:

  • Lock
  • Semaphore
  • CountDownLatch
  • FairLock
  • MultiLock

然而,Jedis在Redis中不支持任何这些锁和同步器。这意味着您必须自己处理这个问题,从而使开发过程更加复杂。

三、分布式对象 

Redisson

Jedis

Object holder

plain commands only

AtomicLong

plain commands only

LongAdder

×

DoubleAdder

×

Publish/Subscribe

plain commands only

Reliable Publish/Subscribe

×

Id Generator

×

AtomicDouble

plain commands only

Geospatial

plain commands only

BitSet

plain commands only

BloomFilter

×

BinaryStream

×

HyperLogLog

plain commands only

RateLimiter

×

除了分布式集合、锁和同步器,Redisson还在Java中为Redis实现了各种其他分布式对象:

  • ObjectHolder
  • AtomicLong
  • Publish/Subscribe
  • AtomicDouble
  • Geospatial
  • BitSet
  • BloomFilter
  • BinaryStream
  • HyperLogLog

在上面的分布式对象中,Jedis根本不支持BloomFilter或BinaryStream对象。仅通过普通命令支持列表中的其他对象。

四、高级缓存支持 

Redisson

Jedis

JCache API

×

JCache API with near cache
(up to 45x faster)

×

Near Cache

×

Read-through strategy support

×

Write-through strategy support

×

Write-behind strategy support

×

只有Redisson具有各种高级缓存功能。例如,Redisson支持三种不同的缓存策略:读通、写通和写后。Redisson还有一个JCache API和一个近缓存,用于保存从远程缓存中提取的对象的本地副本。然而,Jedis没有开箱即用地支持上述任何功能。

五、Transactions

Redisson

Jedis

Transactions API

×

六、API architecture

Redisson

Jedis

Instance thread-safety

×

Asynchronous interface

×

Reactive stream interface

×

RxJava3 interface

×

 Redisson包括对实例线程安全、异步接口、Reactive Streams API和RxJava3 API的支持。然而,杰迪斯完全缺乏这种支持。

七、Distributed services

Redisson

Jedis

ExecutorService

×

MapReduce

×

SchedulerService

×

RemoteService

×

LiveObjectService

×

Redisson支持Java中的各种分布式服务:

  • ExecutorService
  • MapReduce
  • SchedulerService
  • RemoteService
  • LiveObjectService

不幸的是,Jedis不支持这些分布式服务。

八、与框架的集成

Redisson

Jedis

Spring Cache

×

Spring Cache with near cache
(up to 45x faster)

×

Hibernate Cache

×

Hibernate Cache with near cache
(up to 5x faster)

×

MyBatis Cache

×

MyBatis Cache with near cache
(up to 45x faster)

×

Tomcat Session Manager

×

Spring Session

×

Jedis包括对SpringSession和SpringCache框架的支持。除了这两个框架之外,Redisson还支持Hibernate Cache和Tomcat会话管理器。

九、Security

Redisson

Jedis

Authentication

×

SSL support

×

好消息是,Jedis和Redisson都包含关键的安全功能,如身份验证和SSL支持。

十、自定义数据序列化


Redisson

Jedis

JSON codec

×

JDK Serialization

×

Avro codec

×

Smile codec

×

CBOR codec

×

×

MsgPack codec

×

Kryo codec

×

FST codec

×

LZ4 compression codec

×

Snappy compression codec

×

 Redisson支持Java序列化API,以及各种编解码器:

  • JSON
  • FST
  • JDK Serialization
  • CBOR
  • MsgPack
  • Kryo
  • Avro
  • Smile
  • LZ4 compression
  • Snappy compression

不幸的是,Jedis不支持JDK序列化或上述任何编解码器。

你可能感兴趣的:(redis,redis)