猪猪吧博客2 技术 JAVA 正文

Redis高级客户端Lettuce详解

前提#

Lettuce是一个RedisJava驱动包,初识她的时候是使用RedisTemplate的时候遇到点问题Debug到底层的一些源码,发现spring-data-redis的驱动包在某个版本之后替换为LettuceLettuce翻译为生菜,没错,就是吃的那种生菜

既然能被Spring生态所认可,Lettuce想必有过人之处,于是笔者花时间阅读她的官方文档,整理测试示例,写下这篇文章。编写本文时所使用的版本为Lettuce 5.1.8.RELEASESpringBoot 2.1.8.RELEASEJDK [8,11]超长警告:这篇文章断断续续花了两周完成,超过4万字.....

Lettuce简介#

Lettuce是一个高性能基于Java编写的Redis驱动框架,底层集成了Project Reactor提供天然的反应式编程,通信框架集成了Netty使用了非阻塞IO5.x版本之后融合了JDK1.8的异步编程特性,在保证高性能的同时提供了十分丰富易用的API5.1版本的新特性如下:

  • 支持Redis的新增命令ZPOPMIN, ZPOPMAX, BZPOPMIN, BZPOPMAX

  • 支持通过Brave模块跟踪Redis命令执行。

  • 支持Redis Streams

  • 支持异步的主从连接。

  • 支持异步连接池。

  • 新增命令最多执行一次模式(禁止自动重连)。

  • 全局命令超时设置(对异步和反应式命令也有效)。

  • ......等等

注意一点Redis的版本至少需要2.6,当然越高越好,API的兼容性比较强大。

只需要引入单个依赖就可以开始愉快地使用Lettuce

  • Maven

Copy

<dependency>
   <groupId>io.lettuce</groupId>
   <artifactId>lettuce-core</artifactId>
   <version>5.1.8.RELEASE</version></dependency>
  • Gradle

Copy

dependencies {
 compile 'io.lettuce:lettuce-core:5.1.8.RELEASE'
}

连接Redis#

单机、哨兵、集群模式下连接Redis需要一个统一的标准去表示连接的细节信息,在Lettuce中这个统一的标准是RedisURI。可以通过三种方式构造一个RedisURI实例:

  • 定制的字符串URI语法:

Copy

RedisURI uri = RedisURI.create("redis://localhost/");
  • 使用建造器(RedisURI.Builder):

Copy

RedisURI uri = RedisURI.builder().withHost("localhost").withPort(6379).build();
  • 直接通过构造函数实例化:

Copy

RedisURI uri = new RedisURI("localhost", 6379, 60, TimeUnit.SECONDS);



更多使用参考文章:

https://www.cnblogs.com/throwable/p/11601538.html


本文转载自互联网,版权归原作者所有,转载目的在于传递更多的信息,并不代表本网站的观点和立场。 如发现本站文章存在内容、版权或其它问题,烦请联系,我们将及时删除。

评论列表

    快捷回复: