当前位置: 首页 > news >正文

StringRedisTemplate

Redis快速入门

3.2.3.StringRedisTemplate

为了节省内存空间,我们可以不使用JSON序列化器来处理value,而是统一使用String序列化器,要求只能存储String类型的key和value。当需要存储Java对象时,手动完成对象的序列化和反序列化。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

因为存入和读取时的序列化及反序列化都是我们自己实现的,SpringDataRedis就不会将class信息写入Redis了。

这种用法比较普遍,因此SpringDataRedis就提供了RedisTemplate的子类:StringRedisTemplate,它的key和value的序列化方式默认就是String方式。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

省去了我们自定义RedisTemplate的序列化方式的步骤,而是直接使用:

@Autowired
private StringRedisTemplate stringRedisTemplate;
// JSON序列化工具
private static final ObjectMapper mapper = new ObjectMapper();@Test
void testSaveUser() throws JsonProcessingException {// 创建对象User user = new User("虎哥", 21);// 手动序列化String json = mapper.writeValueAsString(user);// 写入数据stringRedisTemplate.opsForValue().set("user:200", json);// 获取数据String jsonUser = stringRedisTemplate.opsForValue().get("user:200");// 手动反序列化User user1 = mapper.readValue(jsonUser, User.class);System.out.println("user1 = " + user1);
}

SON反序列化为Java对象。不过,其中记录了序列化时对应的class名称,目的是为了查询时实现自动反序列化。这会带来额外的内存开销。

3.2.3.StringRedisTemplate

为了节省内存空间,我们可以不使用JSON序列化器来处理value,而是统一使用String序列化器,要求只能存储String类型的key和value。当需要存储Java对象时,手动完成对象的序列化和反序列化。

[外链图片转存中…(img-irFjysCV-1711293162285)]

因为存入和读取时的序列化及反序列化都是我们自己实现的,SpringDataRedis就不会将class信息写入Redis了。

这种用法比较普遍,因此SpringDataRedis就提供了RedisTemplate的子类:StringRedisTemplate,它的key和value的序列化方式默认就是String方式。

[外链图片转存中…(img-0gK2yNEN-1711293162285)]

省去了我们自定义RedisTemplate的序列化方式的步骤,而是直接使用:

@Autowired
private StringRedisTemplate stringRedisTemplate;
// JSON序列化工具
private static final ObjectMapper mapper = new ObjectMapper();@Test
void testSaveUser() throws JsonProcessingException {// 创建对象User user = new User("虎哥", 21);// 手动序列化String json = mapper.writeValueAsString(user);// 写入数据stringRedisTemplate.opsForValue().set("user:200", json);// 获取数据String jsonUser = stringRedisTemplate.opsForValue().get("user:200");// 手动反序列化User user1 = mapper.readValue(jsonUser, User.class);System.out.println("user1 = " + user1);
}

相关文章:

StringRedisTemplate

Redis快速入门 3.2.3.StringRedisTemplate 为了节省内存空间,我们可以不使用JSON序列化器来处理value,而是统一使用String序列化器,要求只能存储String类型的key和value。当需要存储Java对象时,手动完成对象的序列化和反序列化。…...

Linux cp、mv命令显示进度条

1.advcpmv 平常使用cp 拷贝大文件时,看不到多久可以完成,虽然加上-v参数也只能看到正在拷贝文件,那就使用以下方法实现 git clone https://github.com/jarun/advcpmv.git cd advcpmv/ bash install.shmv ./advcp /usr/local/bin/ mv ./advmv …...

在Java中使用Apache POI保留Excel样式合并多个工作簿

背景 在日常工作中,我们经常需要将多个Excel文件合并成一个,同时保留原有的样式和格式。Apache POI是一个流行的Java库,用于读取和写入Microsoft Office格式的文件,包括Excel。然而,仅仅使用Apache POI的基本功能进行…...

Nomachine远程黑屏通用处理方法

Nomachine远程黑屏通用处理方法 文章目录 前言正文解决步骤 总结 前言 NoMachine是一种远程桌面软件,它允许用户通过互联网或局域网连接到远程计算机,并在本地计算机上使用远程计算机的桌面环境和应用程序。它提供了高性能的图形渲染和低延迟的响应&…...

基于51单片机数控直流电压源proteus仿真LCD显示+程序+设计报告+讲解视频

基于51单片机数控直流电压源proteus仿真LCD显示( proteus仿真程序设计报告讲解视频) 仿真图proteus7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0072 讲解视频 基于51单片机数控直流电压源proteus仿真程序…...

[Linux]文件缓冲区

文件fd 输出重定向除了用dup2()改变数组下标外&#xff0c;还可以用命令来完成 所有的命令执行&#xff0c;都必须有操作系统将其运行起来变成进程&#xff0c;然后根据>>, <<来判断是输入重定向&#xff0c;还是输出重定向。 缓冲区 之所以有缓冲区&#xff0…...

ARM:按键中断

key_inc.c #include"key_inc.h"void key1_it_config(){//使能GPIOF外设时钟RCC->MP_AHB4ENSETR | (0x1<<5);//将PF9设置为输入模式GPIOF->MODER & (~(0x3<<18));//设置由PF9管脚产生EXTI9事件EXTI->EXTICR3 & (~(0XFF<<8));EXTI…...

JavaScript高级(五)--柯西化函数

柯里化 定义 首先&#xff0c;我们参照维基百科给出的定义&#xff1a; 在计算机科学中&#xff0c;柯里化&#xff08;英语&#xff1a;Currying&#xff09;&#xff0c;又译为卡瑞化或加里化&#xff0c;是把接受多个参数的函数变换成接受一个单一参数&#xff08;最初函数…...

带3090显卡的Linux服务器上部署SDWebui

背景 一直在研究文生图&#xff0c;之前一直是用原始模型和diffuser跑SD模型&#xff0c;近来看到不少比较博主在用 SDWebui&#xff0c;于是想着在Linux服务器上部署体验一下&#xff0c;谁知道并没有想象的那么顺利&#xff0c;还是踩了不少坑。记录一下过程&#xff0c;也许…...

37、Linux中Xsync数据同步备份工具

37、Linux中Xsync数据同步备份工具 一、介绍二、配置集群hostname三、修改xsync文件四、赋权五、安装Rsync六、验证一七、配置免密登录1、生成rsa密钥2、copy机器自身公钥到目标机器3、.ssh/文件目录赋权 八、验证二 ⚠️ 注&#xff1a;本文全程在普通用户下操作&#xff0c;…...

网络基础:构建你的数字世界之桥

I. 引言 A. 什么是网络&#xff1f; 网络是由各种电子设备通过通信线路或无线电波连接起来&#xff0c;以便彼此之间进行数据交换和资源共享的系统。在当今数字化时代&#xff0c;网络已经成为我们生活和工作中不可或缺的一部分&#xff0c;无论是互联网、局域网还是无线通信…...

Python 全栈系列236 rabbit_agent搭建

说明 通过rabbit_agent, 以接口方式实现对队列的标准操作&#xff0c;将pika包在微服务内&#xff0c;而不必在太多地方重复的去写。至少在服务端发布消息时&#xff0c;不必再去考虑这些问题。 在分布式任务的情况下&#xff0c;客户端本身会启动一个持续监听队列的客户端服…...

管理自由,体验简单,使用安全 | 详解威联通全套多用户多权限管理方案【附TS-466C产品介绍】

管理自由&#xff0c;体验简单&#xff0c;使用安全 | 详解威联通全套多用户多权限管理方案【附TS-466C产品介绍】 哈喽小伙伴们好&#xff0c;我是Stark-C~。今天我们来解决一个之前评论区多次被提及的问题--多用户权限管理。 对于我们NAS用户来说&#xff0c;基本都会面临这…...

【Redis】优惠券秒杀

全局唯一ID 全局唯一ID生成策略&#xff1a; UUIDRedis自增snowflake算法数据库自增 Redis自增ID策略&#xff1a;每天一个key&#xff0c;方便统计订单量ID构造是 时间戳 计数器 Component public class RedisIdWorker {// 2024的第一时刻private static final long BEGIN…...

【几何】平面方程

文章目录 平面方程一般式截距式点法式法线式 平面方程 平面方程是用一个方程来表示平面&#xff0c;平面上的所有点代入方程&#xff0c;方程都成立。因为用法的不同&#xff0c;平面方程一般有四种表现形式。 一般式 设 n ⃗ ( A , B , C ) \vec n(A,B,C) n (A,B,C) 为平…...

macOS访问samba文件夹的正确姿势,在哪里更改“macOS的连接身份“?还真不好找!

环境&#xff1a;路由器上需要身份认证的Mini NAS macOS Sonoma 14 这是一个非常简单的问题&#xff0c;但解决方法却藏得比较深&#xff0c;不够直观&#xff0c;GPT也没有给出明确的解决提示&#xff0c;特意记录一下。 macOS很多地方都很自动&#xff0c;有时候让人找不到设…...

linux进程切换

内核堆栈&#xff1a;每个进程在内核模式下运行时都有自己的内核堆栈。这个堆栈保存了进程在内核模式下的运行状态&#xff0c;包括函数调用时传递的参数、局部变量和返回地址等。 用户态与内核态&#xff1a;进程通常在用户态下运行&#xff0c;当执行系统调用或响应中断时进…...

spring boot 如何升级 Tomcat 版本

在Spring Boot应用程序中升级内嵌的Tomcat版本通常涉及以下几个步骤&#xff1a; 1. 确定当前使用的Tomcat版本 首先&#xff0c;你需要确定你的Spring Boot应用程序当前使用的Tomcat版本。这可以通过查看项目的pom.xml或build.gradle文件来完成&#xff0c;其中会列出所有的…...

sentinel中StatisticSlot数据采集的原理

StatisticSlot数据采集的原理 时间窗口 固定窗口 在固定的时间窗口内&#xff0c;可以允许固定数量的请求进入&#xff1b;超过数量就拒绝或者排队&#xff0c;等下一个时间段进入, 如下图 时间窗长度划分为1秒 单个时间窗的请求阈值为3 上述存在一个问题, 假如9:18:04:…...

图像去噪与增强技术

图像去噪与增强技术是数字图像处理领域中的两个重要方面&#xff0c;它们分别关注消除图像中的噪声和改善图像的质量。 图像去噪技术的主要目的是从受噪声干扰的图像中去除不必要的随机信号&#xff0c;以恢复图像的真实内容。这对于图像的进一步分析和理解至关重要。去噪技术包…...

gallery应用商店优化:提升本地AI平台的发现率与下载量

gallery应用商店优化&#xff1a;提升本地AI平台的发现率与下载量 【免费下载链接】gallery A gallery that showcases on-device ML/GenAI use cases and allows people to try and use models locally. 项目地址: https://gitcode.com/GitHub_Trending/gallery44/gallery …...

如何用AI4Animation快速制作吸睛的角色动画社交媒体内容

如何用AI4Animation快速制作吸睛的角色动画社交媒体内容 【免费下载链接】AI4Animation Bringing Characters to Life with Computer Brains in Unity 项目地址: https://gitcode.com/GitHub_Trending/ai/AI4Animation AI4Animation是一款基于Unity引擎的角色动画工具&a…...

DeviceKit性能优化终极指南:如何避免常见的内存和CPU问题?

DeviceKit性能优化终极指南&#xff1a;如何避免常见的内存和CPU问题&#xff1f; 【免费下载链接】DeviceKit DeviceKit is a value-type replacement of UIDevice. 项目地址: https://gitcode.com/gh_mirrors/de/DeviceKit DeviceKit是一个轻量级的Swift框架&#xff…...

OpenClaw技能开发入门:为Phi-3-vision-128k-instruct定制自动化流程

OpenClaw技能开发入门&#xff1a;为Phi-3-vision-128k-instruct定制自动化流程 1. 为什么需要为Phi-3开发OpenClaw技能&#xff1f; 去年夏天&#xff0c;我接手了一个图像处理自动化项目。当时每天要手动处理数百张产品图&#xff0c;用Photoshop调整尺寸、添加水印、生成缩…...

OpenClaw配置优化:千问3.5-9B长任务稳定性提升50%

OpenClaw配置优化&#xff1a;千问3.5-9B长任务稳定性提升50% 1. 问题背景与挑战 去年11月接手一个自动化内容处理项目时&#xff0c;我第一次遭遇OpenClaw长任务执行的"断链"问题。当时需要连续完成"爬取网页→提取关键数据→生成报告→邮件发送"四个步…...

数理化随机出题系统HTML源码,适配教育场景,支持自定义题库与难度分级

&#x1f6e0;️ 系统核心功能多学科覆盖&#xff1a;支持数学、物理、化学三个学科的题目随机生成难度分级配置&#xff1a;可自定义简单、中等、困难三个难度级别的题目占比题库自定义&#xff1a;支持手动添加不同学科、不同难度的题目内容一键生成试卷&#xff1a;点击即可…...

MATLAB频谱分析:从fft到fftshift的实战解读

1. 为什么我们需要频谱分析&#xff1f; 想象一下你正在调试一段音频&#xff0c;听到里面有奇怪的嗡嗡声。作为工程师&#xff0c;你不仅想知道"有杂音"&#xff0c;更想知道这个杂音具体是哪个频率成分。这就是频谱分析的用武之地——它像是一把声音的显微镜&#…...

实战指南:基于快马平台生成企业级cc switch管理系统,助力游戏项目开发

今天想和大家分享一个在游戏开发中特别实用的技术——CC Switch系统。这个系统在商业游戏项目中经常被用来做调试和功能开关控制&#xff0c;最近我在InsCode(快马)平台上快速实现了一个完整的企业级解决方案&#xff0c;整个过程特别顺畅。 先说说什么是CC Switch。简单理解就…...

基于PLC的3x4立体车库系统设计:资料齐全,共12个车位共用载车板,通过升降横移实现存取车辆

1 基于PLC的3*4立体车库系统设计 资料齐全 共有3*4&#xff0c;12个车位可以使用 并且这12个车位共同使用一个载车板 对于需要存放或者取出的车辆的载车板经由升降横移运动将其运送到地面层&#xff0c;车主只需通过电脑来进行控制即可&#xff0c;以此来进入车库、存取车辆&am…...

不只是投屏:挖掘Scrcpy + ADB在Mac上的高阶玩法,提升开发调试效率

不只是投屏&#xff1a;挖掘Scrcpy ADB在Mac上的高阶玩法&#xff0c;提升开发调试效率 在移动应用开发与测试的日常工作中&#xff0c;效率工具的选择往往决定了生产力水平。Scrcpy作为一款开源的安卓设备投屏工具&#xff0c;其价值远不止于简单的屏幕镜像。当它与ADB&#…...