如何获取ip地址?

爱心卡2022-06-19  18

JedisConnectionFactory如何获取Redis

对Spring Redis的支持是通过Spring Data Redis实现的,JedisConnectionFactory为我们提供了一个Redis的Java客户端Jedis。
本文主要介绍两种使用工厂类获取Jedis的方法,以及使用过程中存在的问题,希望能为您提供一些思路。

工具/材料

智能理念

操作方法 01

首先我们需要编辑Spring的配置文件application.properties,添加Redis的相关配置,需要在代码中注入生成JedisConnectionFactory的Bean。

02

接下来我们写一个配置类,需要添加@Configuration注释。在这个类中,我们通过@Value注释在application.properties配置文件中注入一些必需的属性,其中{}用于接收属性值,属性名冒号后的值为默认值。如果无法读取该属性,将使用默认值。
我们在这个类中创建JedisConnectionFactory的Bean,并在这个Bean中设置read属性值。

03

接下来我们创建一个RedisServer类,主要用来获取Redis,实现一些Redis操作。
在这个类中,我们可以使用@Autowired注释来注入JedisConnectionFactory的Bean。
下图所示的获取Redis客户端Jedis的方法是我们推荐的方法。通过使用这种方法,我们可以同时获得Jedis实例和使用的连接池,这样我们就可以通过连接池来管理Jedis实例,不用太担心并发操作导致的Redis不可用。
最后附上Jedis操作存储和获取数据的方法。

04

另外我们也介绍一种不推荐的写法,如下图。
该方法每次创建一个新的Redis连接,并且不关闭连接,在大量并发操作时会带来性能开销。由于对连接数没有限制,因此可能会耗尽Redis连接并导致Redis连接报告错误。

05

配置完成后,我们来测试一下Jedis是否能正常工作,创建一个RedisController类,将JedisServer注入到这个类中,使用JedisServer提供的存储和读取方法,然后启动服务。

06

服务启动后,我们在postman中进行测试。首先我们调用setRedis请求数据存储在Redis中,然后我们调用getRedis请求数据,如下图所示。

07

在Spring Data Redis 2.0之后,JedisConnectionFactory不再推荐上述配置方式。当我们的spring-boot-starter-parent版本设置为2.x时,我们可以看到代码中的设置已经被放弃了。

08

Spring Data Redis 2.0推荐使用Standalone、Sentinel和RedisCluster的环境配置类,以便更灵活地适应更多的业务场景。一般我们自己测试Redis的时候,一般都是用单机版。所以,以单机版为例,JedisConnectionFactory的配置应该写成这样。

特别提示

本文只介绍一种使用Redis客户端的方法,建议大家使用spring-boot集成Redis进行开发,因为spring-boot的开箱即用特性可以大大减少开发工作量。

转载请注明原文地址:http://juke.outofmemory.cn/read/373687.html

最新回复(0)