简介
忙碌了一周,感觉只有此刻写文字的时间才是最惬意的。最近工作比较忙,文章更新的较慢还望大家多多见谅?!
在阅读下面的内容之前,希望你已经安装并且做好了学习 Spring Boot 集成 Redis 的准备了。
如果你还没有搭建 Redis 环境,Win10-安装-Redis 这篇文章或许可以帮到您。
在 Spring Boot 1.x
版本中默认的 Redis 客户端是 Jedis 实现的,Spring Boot 2.x
版本中默认客户端是用 Lettuce 实现的。可以从加入的依赖包中看出,Spring Boot 2.2.x
中的 spring-data-redis
仍旧包括了 Jedis 和 Lettuce,但是默认使用了 Lettuce(换句话说,如果你不想使用默认的 Lettuce 实现可以换成 Jedis 的实现),如下图:
Lettuce 和 Jedis 的都是连接 Redis Server 的客户端,简单异同点如下:
- Jedis 在实现上是直连 Redis Server,多线程环境下非线程安全,除非使用连接池,为每个 Redis 实例增加物理连接;
- Lettuce 是 一种可伸缩,线程安全,完全非阻塞的 Redis 客户端,多个线程可以共享一个
RedisConnection
,它利用Netty NIO
框架来高效地管理多个连接,从而提供了异步和同步数据访问方式,用于构建非阻塞的反应性应用程序;
本篇只分享在 Spring Boot 项目中如何集成 Jedis 实现的 Redis 客户端和简单使用,关于 Redis 的使用有很多应用场景,后续再做探讨和分享(Redis 确实很强大,值得我们深入学习和研究)。
加入依赖包
在 pom.xml
文件中添加 redis 的依赖,如下:
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-data-redisartifactId>
dependency>
运行项目后,会报如下错误:
org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'redisConnectionFactory' defined in class path resource
[org/springframework/boot/autoconfigure/data/redis/LettuceConnectionConfiguration.class]: Bean instantiation via factory method failed;
nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory]:
Factory method 'redisConnectio