Jedis 是 Redis java语言的客户端,使用普遍,现就其原理及源码与大家进行交流,欢迎指正和讨论,同时也欢迎转载,谢谢大家。


Jedis对外提供的操作对象有如下四种基础对象(暂未加入pipeline):

  • Jedis,最基础的Redis操作对象,也是单Redis实例最常用的客户端操作对象

  • JedisPool,Jedis池化对象,通过common-pools实现的对象池,对Jedis进行池化管理

  • JedisCluster,Redis原生集群方案,通过JedisPool实现

  • ShardedJedis,Redis客户端分片方案,通过Jedis实现,未使用池化技术

如下图所示: 

Jedis全类图.png

这里的4个对象,主要体现了三类Redis组态,即:

  1. 单实例

  2. 多实例分片

  3. 集群

对应关系如下:

组态

说明

单实例

Jedis

单实例,单连接

JedisPool

单实例,连接池

多实例分片

ShardedJedis

客户端哈希分片,通常采用一致性哈希算法,单结点单连接

集群

JedisCluster

Redis原生集群方案,每个主节点都有连接池

以上类图中各个类的用途在后面的章节进行详细叙述。