springboot如何使用RedisTemplate

news/2024/9/23 5:08:40/

第一步:创建一个spring boot项目

第二步:pom导入redis相关依赖 

<!--reids依赖-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency><!--common-pool,用来配置redis连接池-->
<dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId>
</dependency>

 第三步:配置application.yml文件

spring:redis:host: 127.0.0.1 #ip地址port: 6379  #端口号password: 123456 #如果没有密码,可以不写这一行
#    配置连接池信息lettuce:pool:max-active: 8 # 连接池最大连接数(使用负值表示没有限制)max-idle: 8 # 连接池中的最大空闲连接min-idle: 0 # 连接池中的最小空闲连接max-wait: 100ms # 连接池最大阻塞等待时间(使用负值表示没有限制)

 第四步:测试

注意:测试前需要开启redis

java">@SpringBootTest
class RedisDemoApplicationTests {//注入RedisTemplate@Autowiredprivate RedisTemplate redisTemplate;@Testvoid contextLoads() {//写入 一条String数据redisTemplate.opsForValue().set("name","张三");//通过key值获取数据Object name = redisTemplate.opsForValue().get("name");System.out.println(name);}
}

输出结果:

java">张三

第五步:存在的问题

虽然在测试中控制台输出的是“张三”。

但我们从redis图形化工具中查看会发现我们存入的key和value不是我们想要存入的:

        key(name)

        value(张三):"퀅t\u0000\u0006张三"

这是因为RedisTemplate中默认的序列化工具JdkSerializationRedisSerializer,所以会出现以上问题

解决办法:

写一个redis的配置类:

java">@Configuration
public class RedisConfig {@Beanpublic RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory redisConnectionFactory){//创建RedisTemplate对象RedisTemplate<String,Object> template=new RedisTemplate<>();//设置连接工厂template.setConnectionFactory(redisConnectionFactory);//创建json序列化工具GenericJackson2JsonRedisSerializer jsonRedisSerializer=new GenericJackson2JsonRedisSerializer();//设置key的序列化为Stringtemplate.setKeySerializer(RedisSerializer.string());template.setHashKeySerializer(RedisSerializer.string());//设置value的序列化template.setValueSerializer(jsonRedisSerializer);template.setHashValueSerializer(jsonRedisSerializer);//返回return template;}}

 然后只需要将注入的RedisTemplate改成下面这样就行了:

java">@SpringBootTest
class RedisDemoApplicationTests {//注入RedisTemplate@Autowiredprivate RedisTemplate<String,Object> redisTemplate;@Testvoid contextLoads() {//写入 一条String数据redisTemplate.opsForValue().set("name","张三");//通过key值获取数据Object name = redisTemplate.opsForValue().get("name");System.out.println(name);}
}

 注意:有的需要导入Jackson依赖才可以

 以上主要就是将我们要存的key和value的序列化工具改变了。


http://www.ppmy.cn/news/1445899.html

相关文章

贪吃蛇大作战【纯c语言】

如果有看到不懂的地方或者对c语言某些知识忘了的话&#xff0c;可以找我之前的文章哦&#xff01;&#xff01;&#xff01; 个人主页&#xff1a;小八哥向前冲~-CSDN博客 所属专栏&#xff1a;c语言_小八哥向前冲~的博客-CSDN博客 贪吃蛇游戏演示&#xff1a; 贪吃蛇游戏动画演…

git 重命名文件,提交后,此文件的提交记录丢失

零、问题现象&#xff1a; 文件重命名后&#xff0c;提交到 git 仓库&#xff0c;发现重命名操作 变成 删除旧文件&#xff0c;新增一个新文件&#xff0c;原来文件的提交记录丢失&#xff0c;看不到了。 一、正确的重命名提交方法 1.1、 先执行add命令来将修改内容后的文件…

富格林:可信方针实现安全盈利

富格林指出&#xff0c;现货黄金一直以来都是投资者们追捧的热门品种之一。其安全性和保值增值的特性吸引着广大投资者。然而&#xff0c;要在现货黄金市场中取得成功并非易事&#xff0c;是需要一定的可信技巧和方针来支撑的。下面富格林将介绍一些关键的可信方针&#xff0c;…

【DevOps入门到精通】导读:探索软件开发与运维的协同之道

目录 DevOps简介 专栏结构概览 第一部分&#xff1a;入门阶段 DevOps概述 核心实践 工具与环境 第二部分&#xff1a;提高阶段 深入CI/CD 自动化测试进阶 监控与日志 第三部分&#xff1a;精通阶段 容器化与微服务架构 DevSecOps 高级监控与优化 第四部分&#…

游戏新手村23:游戏数据分析都是谁在看数据

不管是做端游页游还是手游&#xff0c;不管是做市场广告投放还是游戏运营&#xff0c;都需要看数据。有的人说“数据会说话”&#xff0c;也有人说“数据会说谎”&#xff0c;有的人言必谈大数据&#xff0c;有的人则能善于从细小的数据着手发现问题。 我知道和了解的一些游戏…

如何维护 Oracle B*tree 索引。 多列index是合并一起指向rowid的

尽管这是一份较旧的文档&#xff0c;但以下信息仍与更高版本相关。 Although this is an older document, the information below is still relevant to later versions. 范围 它旨在帮助试图了解如何维护 Oracle B*tree 索引的用户。 详 Oracle 版本 8 提供了五种索引方案…

Git 最佳实践规范

Git 分支的命名约定 当我们使用代码版本控制时&#xff0c;我们应该遵循的主要良好实践之一是为分支、提交、拉取请求等使用清晰且描述性的名称。确保所有团队成员的简洁工作流程至关重要。除了提高生产力之外&#xff0c;记录项目的开发过程还可以简化团队合作。通过遵循这些做…

【PC游戏】【World of Warcraft 魔兽世界(法语版)】怀旧版 CD-ROM 安装及使用记录(一)

一、前言 正值最近暴雪和网易重修旧好之时&#xff0c;笔者在新加坡从一个宅男朋友nerd bro那里淘到了一套法语版的World of Warcraft&#xff0c;共5张CD-ROM光碟。该套光碟的发行年份是2005年&#xff0c;于欧盟制造。推荐的操作系统是Windows 2000或者Windows XP或者Mac OS…