springboot3整合redis
创始人
2024-11-10 07:06:29
0

redis在我们的日常开发中是必不可少的,本次来介绍使用spring boot整合redis实现一些基本的操作;

1、新建一个spring boot项目,并导入相应的依赖;

               org.springframework.boot             spring-boot-starter-data-redis         

这个依赖内部已经包含了lettuce,所以我们要操作redis数据库只需要引入一个依赖即可。

版本:springboot3.2.2    redis7.0.12

2、配置相应的yml文件:

spring:   data:   # redis配置     redis:       # Redis服务器地址       host: 192.168.231.110       database: 0       # Redis服务器连接端口       port: 6379       # Redis服务器连接密码(默认为空)       password: 123456       # 连接超时时间       timeout: 10s       lettuce:         pool:           # 连接池最大连接数           max-active: 200           # 连接池最大阻塞等待时间(使用负值表示没有限制)           max-wait: -1ms           # 连接池中的最大空闲连接           max-idle: 10           # 连接池中的最小空闲连接           min-idle: 0

在spring boot3版本之前,是spring.redis;但是在3.0版本之后,默认就是spring.data.redis。

3、直接进行操作

spring官方已经封装了用于操作redis的模板类,我们可以直接使用。

RedisTemplate是spring官方封装好的类,我们可以直接使用来进行对redis的操作。(注意使用的时候,要注入相应的泛型,不然会提示找不到相应的依赖)在spring boot3版本之前,如果不注入泛型也可以,但是在3.0版本之后,如果不指定相应的泛型,那么在启动的时候就会报错,显示找不到相应的类型

       @Resource     private RedisTemplate redisTmplate;

测试代码:

@Test void ee() {      redisTmplate.opsForValue().set("name", "李四");     System.out.println(redisTmplate.opsForValue().get("name")); }

运行结果:

在redis中查看:

查看具体详情:

可以看到我们存入的“李四”是一堆乱码,这主要是redis内部的编码问题。我们只是在redis内部查看的时候显示乱码,并不影响我们在Java客户端的使用。

如果想要在redis内部也显示中文,可以在连接redis的时候在命令的最后加上 --raw

--raw选项用于指示redis-cli在交互中使用原始格式输出。

redis-cli -a 123456 --raw 

我们再次进入redis的客户端,再次查看我们存入redis中的数据:

RedisTemplate有许多的子类,我们也可以使用它的子类,这样功能更强大一些;

如StringRedisTemplate

这个效果与我们使用RedisTemplate的效果一样。

当然我们也可以自定义redis的实现逻辑,以适应我们不同的项目需求;

@Configuration public class RedisConfig {      @Bean     public RedisTemplate redisTemplate(LettuceConnectionFactory lettuceConnectionFactory ){         RedisTemplate redisTemplate = new RedisTemplate<>();         redisTemplate.setConnectionFactory(lettuceConnectionFactory); //        设置key序列化方式为StringRedisSerializer         redisTemplate.setKeySerializer(new StringRedisSerializer()); //        设置value序列化方式为json,使用GenericJackSonJsonRedisSerializer替换默认的jdk序列化         redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());         redisTemplate.setHashKeySerializer(new StringRedisSerializer());         redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());         redisTemplate.afterPropertiesSet();         return redisTemplate;     } }

使用我们自定义的RedisTemplate

@Autowired     private RedisTemplate redisTmplate2;  @Test     void contextLoads() {     List list = new ArrayList<>();     list.add("张三");     list.add("李四");         redisTmplate2.opsForValue().set("testList", list);         System.out.println(redisTmplate2.opsForValue().get("testList"));     } }

运行结果:

redis客户端的数据:

可以看到,我们选择自定义redis的实现之后。使用起来就方便了很多,如果是比较简单的项目,那么使用StringRedisTemplate就可以解决相应的业务问题,但是在复杂的项目中,建议还是自定义一个RedisTemplate的实现类,使用自己的实现类会更方便一些,也更利于项目的扩展。

相关内容

热门资讯

透视透视!wepoker辅助器... 透视透视!wepoker辅助器激活码,(AApoker万能)原本真的是有挂,系统教程(有挂教学);1...
揭秘真相!wpk俱乐部是做有挂... 揭秘真相!wpk俱乐部是做有挂的,教你开挂辅助透视挂-固有有挂;1、让任何用户在无需AI插件第三方神...
一秒答解“玉溪捞腌菜游戏攻略”... 一秒答解“玉溪捞腌菜游戏攻略”介绍开挂作弊辅助下载(起初真的有挂);人气非常高,ai更新快且高清可以...
交流学习经验!广西八一字牌有挂... 交流学习经验!广西八一字牌有挂,摸一把花牌辅助,第三方教程(今日头条);大家肯定在之前广西八一字牌有...
透视ai代打!hhpoker外... 透视ai代打!hhpoker外挂靠谱,(WePoKer作弊)往昔是有挂,微扑克教程(有挂分享);致您...
透视挂透视!wepoker软件... 透视挂透视!wepoker软件辅助程序,总结开挂辅助透视工具-果然真的有挂;1、超多福利:超高返利,...
一分钟揭秘“边锋干瞪眼脚本”解... 一分钟揭秘“边锋干瞪眼脚本”解密开挂作弊辅助app(总是真的有挂);边锋干瞪眼脚本中的10万兆豆可能...
玩家必知教程!逗娱碰胡俱乐部插... 玩家必知教程!逗娱碰胡俱乐部插件,牛总管辅助免费版,AI教程(有挂实锤);逗娱碰胡俱乐部插件AI智能...
透视好牌!wepoker-h5... 透视好牌!wepoker-h5下载,(WPK方法)真是有挂,黑科技教程(的确有挂);WPK方法是一项...
一分钟了解“阿当比鸡破解版2.... 一分钟了解“阿当比鸡破解版2.0.0”科普开挂作弊辅助工具(原本是真的有挂);详细阿当比鸡破解版2....