java客户端连接redis并设置序列化处理

1、导入依赖

<!--继承父依赖-->
<parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <version>2.3.12.RELEASE</version>
   <relativePath/> <!-- lookup parent from repository -->
</parent>

<dependencies>
    <!--spring-data-redis依赖-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-redis-reactive</artifactId>
		</dependency>
    <!--springboot依赖-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
		</dependency>
    <!--连接池依赖-->
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-pool2</artifactId>
		</dependency>
    <!--junit依赖-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>io.projectreactor</groupId>
			<artifactId>reactor-test</artifactId>
			<scope>test</scope>
		</dependency>
    <!--json与java对象转换依赖-->
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
		</dependency>
	</dependencies>


2、yml配置


spring-data-redis集成了lettuce(线程安全)和jedis(线程不安全),这里配置的是lettuce,两者均为Redis的客户端。

spring:
  redis:
    port: 6379
    host: localhost
    password:
    lettuce:
      pool:
        max-active: 8
        max-idle: 0
        min-idle: 0
        max-wait: 100ms
# 最大空闲连接 (maxIdle):这个参数指定了连接池中可以保持的最大空闲连接数。
#当连接池中的连接数量超过这个值时,多余的空闲连接将被回收。如果你的应用程序具有较高的并发连接数量,
#你可以适当增大这个值,以便连接池中始终保持足够的可用连接。
# 最小空闲连接 (minIdle):这个参数指定了连接池中默认保持的最小空闲连接数。\
#当连接池中的空闲连接数量低于这个值时,连接池会创建新的连接来补充空闲连接的数量。
#这样可以避免每次需要连接时都创建新的连接,提高性能和响应速度。你可以根据你的应用程序的需要适当地调整这个值。

image.png

image.png


3、RedisTemplate


RedisTemplate是Spring Data Redis框架提供的一个用于与Redis数据库交互的核心工具类。它提供了一系列用于操纵Redis数据库的方法,可以方便地进行数据存储、读取和删除操作。通过RedisTemplate,开发者可以使用一种更高级别的抽象来操纵Redis数据库,而不必与低级的Redis命令打交道。同时,RedisTemplate也提供了与Spring框架无缝集成的功能,使得在Spring应用中使用Redis变得更加方便。
但是直接使用这个操作工具类,会出现下面这中情况

image.png


而且在redis可视化端查看是二进制字符

image.png


这个工具类会默认使用jdk默认的序列化方式


4、改进方式:StringRedisTemplate


StringRedisTemplate是Spring Data Redis框架提供的一个封装Redis String类型数据操作的工具类。它是RedisTemplate的一个具体实现,专门用于操作Redis中的字符串数据(String类型)

@Test//redis中写入字符串
public  void  redisTest(){
   stringRedisTemplate.opsForValue().set("name", "duhong");
   String name =stringRedisTemplate.opsForValue().get("name");
   System.out.println(name);
}
@Test//redis中写入对象,将对象转成json字符串再进行存取
public  void  redisTest1() throws JsonProcessingException {
   User user=new User("duhong",12);
   //java对象与json字符串的转换
   ObjectMapper objectMapper = new ObjectMapper();
   String s = objectMapper.writeValueAsString(user);
   stringRedisTemplate.opsForValue().set("user", s);
   String userJson =stringRedisTemplate.opsForValue().get("user");
   User user1 = objectMapper.readValue(userJson, User.class);
   System.out.println(user1.toString());
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/319672.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

css深度选择器 /deep/

一、/deep/的含义和使用 /deep/ 是一种 CSS 深度选择器&#xff0c;也被称为深度组合器或者阴影穿透组合器&#xff0c;主要用在 Web 组件样式封装中。 在 Vue.js 或者 Angular 中&#xff0c;使用了样式封装技术使得组件的样式不会影响到全局&#xff0c;也就是说组件内部的…

【漏洞复现】大华 DSS 数字监控系统 itcBulletin SQL 注入

漏洞描述 大华 DSS存在SQL注入漏洞,攻击者 pota/services/itcBuletin 路由发送特殊构造的数据包,利用报错注入获取数据库敏感信息。攻击者除了可以利用 SQL注入漏词获取数据库中的信息例如,管理员后台密码、站点的用户人人信息)之外,甚至在高权限的情况可向服务器中写入木…

Echarts图表如何利用formatter自定义tooltip的内容和样式

在展示多数据图表的时候 有的时候需要图例也展示出一些内容来&#xff0c;例如官方这样子&#xff1a;鼠标悬停的时候展示该点数据 但是&#xff0c;官方提供的样式有时不适用所有的开发场景 我的项目需要实现鼠标悬停在某一点的时候&#xff0c;只展示该条线的数据&#xff0…

异常处理注解 @ExceptionHandler

今天记录下 SpringBoot 中 ExceptionHandler 的使用。 场景 有一个员工表(employee)&#xff0c;且给表中的 username 属性设置了唯一性。 -- auto-generated definition create table employee (id bigint auto_increment comment 主键primary key,name va…

C++STL

STL基本概念 standard template library : 标准模板库STL从广义上可以分为&#xff1a; 容器(container) 算法(algorithm) 迭代器(iterator)。 容器和算法之间通过迭代器进行无缝连接。 STL几乎所有的代码都采用了模板类或者模板函数STL六大组件 STL的容器 STL的容器就是将运…

uniapp滑动页面切换和下拉刷新,触底加载更多(swiper + scroll-view)

因为官方文档乱七八糟的&#xff0c;所以自己来总结下 需求&#xff1a; 常见的上方tag标签切换&#xff0c;下方是页面&#xff0c;上面点击切换&#xff0c;下面页面也切换&#xff0c;下方列表有下拉刷新&#xff0c;触底加载更多 因为这两个组件都是固定高度的&#xff0c;…

maven管理使用

maven基本使用 一、简介二、配置文件三、项目结构maven基本标签实践(例子) 四、pom插件配置五、热部署六、maven 外部手动加载jar打包方式Maven上传私服或者本地 一、简介 基于Ant 的构建工具,Ant 有的功能Maven 都有,额外添加了其他功能.本地仓库:计算机中一个文件夹,自己定义…

最全对象存储(云盘)挂载本地主机或服务器

1.对象存储介绍 1.1 分类 分布式存储的应用场景相对于其存储接口&#xff0c;现在流行分为三种: 块存储: 这种接口通常以QEMU Driver或者Kernel Module的方式存在&#xff0c;这种接口需要实现Linux的Block Device的接口或者QEMU提供的Block Driver接口&#xff0c;块存储一般…

Adobe Illustrator 2023--AI2023中文

Adobe Illustrator 2023是一款专业的矢量图形设计软件&#xff0c;广泛应用于印刷、Web、视频和移动设备的设计制作。它提供了丰富的绘图工具、矢量图形编辑功能和灵活的排版设计工具&#xff0c;帮助用户快速高效地制作出精美的设计作品。相较于其他设计软件&#xff0c;Adobe…

在Windows服务器上部署项目【虚拟机版】

一. jdk的安装 1、直接双击jdk应用程序&#xff0c;然后下一步下一步即可。 2、安装完成后&#xff0c;在此电脑➡右键➡属性➡高级系统变量。 3、配置环境变量 新建JAVA_HOMEC:\Program Files\Java\jdk1.8.0_144 编辑pathpath%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 4、测试&am…

照片删除了怎么恢复回来

照片&#xff0c;对我们来说&#xff0c;这两个字眼再熟悉不过了&#xff0c;每一张照片都包含无比重要的意义&#xff0c;相信在大家的心目中&#xff0c;这些包含意义的照片都是无价的。怎样找回删除的照片&#xff1f; 既然这些照片对我们来说意义非凡&#xff0c;那如果不小…

【银行测试】银行项目,信贷/贷款业务测试+常问面试(二)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 银行测试-信贷&am…

MySQL基础学习: 使用EXPLAIN查看执行计划详解分析

一、EXPLAIN语句的作用 在客户端执行MySQL的操作语句&#xff0c;会依次经过MySQL客户端连接管理、语法解析与优化&#xff08;查询缓存、语法解析、查询优化&#xff09;、存储引擎层。其中查询优化器在基于成本和规则对查询语句进行优化&#xff0c;并且在优化后会生成一个执…

AC修炼计划(AtCoder Beginner Contest 334)A~G

传送门&#xff1a;UNIQUE VISION Programming Contest 2023 Christmas (AtCoder Beginner Contest 334) - AtCoder A题是最最基础的语法题就不再讲解。 B - Christmas Trees 该题虽然分低&#xff0c;但我觉得还是很不错的。 给你 l 和 r &#xff0c;设满足题意的数字是x则…

深入解析JavaScript中构造函数和new操作符

&#x1f9d1;‍&#x1f393; 个人主页&#xff1a;《爱蹦跶的大A阿》 &#x1f525;当前正在更新专栏&#xff1a;《VUE》 、《JavaScript保姆级教程》、《krpano》 ​ ​ 目录 ✨ 前言 ✨ 正文 第一节:构造函数 第二节:new操作符 第三节:实例与原型 ✨ 结语 ✨ 前言…

ssm基于java的自助医疗服务系统的设计与实现+jsp论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本自助医疗服务系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息…

C#MQTT编程04--订阅报文

1、报文回顾 在MQTT中&#xff0c;消息传递模式是采用发布订阅模式&#xff08;Publish-Subscribe Pattern&#xff09;&#xff0c;它将发送消息的客户端&#xff08;发布者&#xff09;与接收消息的客户端&#xff08;订阅者&#xff09;解耦&#xff0c;使得两者不需要建立…

【python】07.字符串和常用数据结构

字符串和常用数据结构 使用字符串 第二次世界大战促使了现代电子计算机的诞生&#xff0c;最初计算机被应用于导弹弹道的计算&#xff0c;而在计算机诞生后的很多年时间里&#xff0c;计算机处理的信息基本上都是数值型的信息。世界上的第一台电子计算机叫ENIAC&#xff08;电…

冠军获奖经历:这一路我们不孤单!

Datawhale干货 获奖&#xff1a;元贞、小罗&#xff0c;Datawhale优秀学习者 前 言 大家好&#xff0c;我是 2023 寻找游戏大模王 AI 原生应用大赛的 Top1 荆轲刺秦王团队的小罗&#xff0c;很高兴能在这里与大家分享我们这次比赛的经验&#xff0c;同时也希望以后有机会可以和…

华为常用的命令——display,记得点赞收藏!

华为设备提供了多条display命令用于查看硬件部件、接口及软件的状态信息。通常这些状态信息可以为用户故障处理提供定位思路。 常用的故障信息搜集的命令如下&#xff1a; 路由器常用维护命令表 交换机常用的故障信息搜集 关注 工 仲 好&#xff1a;IT运维大本营&#xff0c;获…