Redis Java客户端介绍

220 阅读1分钟

一、又是划水的一天

最近正好也在写自定义协议的Java客户端,想看看开源软件客户端一般怎么写,尤其是通信层。

Redis 服务端是IO多路复用加事件驱动模型,事件处理是单线程。

想重点看看客户端如何写通信层代码,协议怎么封装。

市面上有三个 Redis Java 客户端:

  • Jedis 感觉是用的最广的,因为比较早吧。网络模型是连接池+长链接 (socket bio)

  • Luttuce 使用NIO + 单线程长链接 + 定时任务失败重连 (netty + nio),本来想看 Luttuce 源码,但是真的多,一个客户端竟然有10万的代码,和redis C的服务端一样多的代码。

  • Redission 通信层没有了解,但介绍也是netty + nio,但 redission 叫做数据网格,因为它在redis数据结构的接触上,在客户端配合Lua脚本做了丰富的数据结构,包括redis官方推荐的Java版本分布式锁的实现,还有其他JUC中的并发集合的分布式版本实现和MQ数据结构。

二、推荐文章

Luttuce www.throwable.club/2019/09/28/…

Redission官方文档就很强,目录就能看出来有丰富的数据结构 github.com/redisson/re…