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

springboot使用redis缓存乱码(key或者 value 乱码)一招解决

如果查看redis中的值是这样
在这里插入图片描述
在这里插入图片描述

创建一个配置类就可以解决

package com.deka.config;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.script.DefaultRedisScript;
import org.springframework.data.redis.core.script.RedisScript;
import org.springframework.data.redis.listener.RedisMessageListenerContainer;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import org.springframework.scripting.support.ResourceScriptSource;@Configuration
public class RedisConfig {@Autowiredprivate RedisConnectionFactory redisConnectionFactory;@Autowiredprivate RedisTemplate redisTemplate;@Beanpublic RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory factory) {redisTemplate.setConnectionFactory(factory);Jackson2JsonRedisSerializer<Object> serializer = new Jackson2JsonRedisSerializer<Object>(Object.class);redisTemplate.setDefaultSerializer(serializer);//设置序列化Key的实例化对象redisTemplate.setKeySerializer(new StringRedisSerializer());//设置序列化Value的实例化对象redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());return redisTemplate;}@Beanpublic RedisMessageListenerContainer redisContainer() {final RedisMessageListenerContainer container = new RedisMessageListenerContainer();container.setConnectionFactory(redisConnectionFactory);return container;}@Beanpublic RedisScript<Long> limitRedisScript() {DefaultRedisScript<Long> redisScript = new DefaultRedisScript<>();redisScript.setScriptSource(new ResourceScriptSource(new ClassPathResource("scripts/limit.lua")));redisScript.setResultType(Long.class);return redisScript;}}

相关文章:

springboot使用redis缓存乱码(key或者 value 乱码)一招解决

如果查看redis中的值是这样 创建一个配置类就可以解决 package com.deka.config;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; i…...

rk3588配置uac功能,android13使能uac及adb的复合设备

最近&#xff0c;因新增需求需要在现有产品上增加UAC的功能&#xff0c;查阅并学习相关知识后&#xff0c;在rk3588 SOC硬件平台搭载android13系统平台上成功配置了uac及uac&adb的复合设备。基于开源共享精神希望给大家提供些参考。 1.技术可行性预研 &#xff08;1&#…...

对未来新能源车测试工具的看法

汽车行业正在经历变革的说法算是比较轻描淡写的了&#xff0c;还记得我1983年加入这个行业时&#xff0c;行业聚焦点是引入发动机管理系统。当时还是以家庭掀背车为主的时代&#xff0c;发动机分析仪的体积像衣柜一样大&#xff0c;还没出现“CAN”通信协议。现在经常听到我的导…...

案例说法:智能网联车背后的安全隐患

随着汽车智能化、网联化的发展&#xff0c;汽车数据处理能力日益增强&#xff0c;未经授权对个人信息和重要数据采集、利用等数据安全问题逐步凸显。对车辆网络攻击、网络侵入等网络安全问题恐将危及个人生命安全、合法权益&#xff0c;甚至危害公共利益、国家安全&#xff0c;…...

基于C#实现双端队列

话说有很多数据结构都在玩组合拳&#xff0c;比如说&#xff1a;块状链表&#xff0c;块状数组&#xff0c;当然还有本篇的双端队列&#xff0c;是的&#xff0c;它就是栈和队列的组合体。 一、概念 我们知道普通队列是限制级的一端进&#xff0c;另一端出的 FIFO 形式&#…...

蓝桥杯物联网竞赛_STM32L071_4_按键控制

原理图&#xff1a; 当按键S1按下PC14接GND&#xff0c;为低电平 CubMX配置: Keil配置&#xff1a; main函数&#xff1a; while (1){/* USER CODE END WHILE */OLED_ShowString(24, 0, "<KeyCheck>", 16);if(Function_KEY_S1Check() 1){ OLED_ShowString(…...

【后端卷前端】

为啥现在对后端要求这么高?为啥不要求前端会后端呢? 可能是后端人太多了,要求后端需要会前端的框架(vue react angular ), 这不我为了适应市场的需求来系统的学习vue了: 生成一个基础的vue项目 创建vue项目 vue create projectname 创建vitevue npm init vitelatest p…...

二叉树题目:结点与其祖先之间的最大差值

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;结点与其祖先之间的最大差值 出处&#xff1a;1026. 结点与其祖先之间的最大差值 难度 5 级 题目描述 要求 给…...

平衡树 - splay

相比于之前的普通平衡树进行左旋右旋来比&#xff0c;splay的适用性更高&#xff0c;使用更广泛。 核心函数rotate、splay函数&#xff0c;其它的根据需要进行修改。 int n, m; struct Node {int s[2], p, v, cnt; // 左右儿子、父节点、值、出现数量int size, flag; // 子树大…...

Spring Validation实践及其实现原理

Bean Validation 2.0 注解 校验空值 Null&#xff1a;验证对象是否为 null NotNull&#xff1a;验证对象是否不为 null NotEmpty&#xff1a;验证对象不为 null&#xff0c;且长度&#xff08;数组、集合、字符串等&#xff09;大于 0 NotBlank&#xff1a;验证字符串不为 nul…...

Java核心知识点整理大全18-笔记

Java核心知识点整理大全-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全2-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全3-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全4-笔记-CSDN博客 Java核心知识点整理大全5-笔记-CSDN博客 Java核心知识点整理大全6…...

vue 富文本编辑器多图上传

首先我使用的富文本编辑器是vue-quill-editor 使用npm进行下载 npm install vue-quill-editor --save当然也可以按照官方的方法下载&#xff0c;到官方 因为我是在原有老项目上开发的使用的组件库是ant-design-vue 1x版&#xff0c;当然使用其他组件库也可以 然后还有重要的一…...

简易地铁自动机售票系统实现(C++)

该程序具有以下功能 (1) 一个地铁路线类 Router&#xff0c;包含路线编号&#xff0c;途中的各个站点。可以新增、删除、查询路线&#xff0c;可以根据线路名称&#xff0c;显示线路图片。 (2) 一个地图类 Map&#xff0c;可以显示所有可以乘坐的地铁站名&#xff0c;以及线路…...

【Spark入门】基础入门

【大家好&#xff0c;我是爱干饭的猿&#xff0c;本文重点介绍Spark的定义、发展、扩展阅读&#xff1a;Spark VS Hadoop、四大特点、框架模块、运行模式、架构角色。 后续会继续分享其他重要知识点总结&#xff0c;如果喜欢这篇文章&#xff0c;点个赞&#x1f44d;&#xff…...

【自制开源】实时调参,手写字生成神器!大学生福音,告别繁琐的手写报告。

HandwritingGenerator HandwritingGenerator 是一个使用 PyQt6 制作的手写文本图片生成器。 该工具允许用户自定义多种效果&#xff0c;通过在左边配置效果参数&#xff0c;右边实时预览&#xff0c;并在调整好后输出图片。 效果预览 软件界面预览&#xff1a;一封情书&#x…...

Python 进阶(十一):高精度计算(decimal 模块)

《Python入门核心技术》专栏总目录・点这里 文章目录 1. 导入decimal模块2. 设置精度3. 创建Decimal对象4. 基本运算5. 比较运算6. 其他常用函数7. 注意事项8. 总结 大家好&#xff0c;我是水滴~~ 在进行数值计算时&#xff0c;浮点数的精度问题可能会导致结果的不准确性。为了…...

MCU常用文件格式

1. asm文件 asm是汇编语言源程序的扩展名&#xff0c;.asm文件是以asm作为扩展名的文件&#xff0c;是汇编语言的源程序文件。汇编语言(Assembly Language)是面向机器的程序设计语言&#xff0c;是利用计算机所有硬件特性并能直接控制硬件的语言。在汇编语言中&#xff0c;用助…...

【机器学习】On the Identifiability of Nonlinear ICA: Sparsity and Beyond

前言 本文是对On the Identifiability of Nonlinear ICA: Sparsity and Beyond (NIPS 2022)中两个结构稀疏假设的总结。原文链接在Reference中。 什么是ICA(Independent component analysis)&#xff1f; 独立成分分析简单来说&#xff0c;就是给定很多的样本X&#xff0c;通…...

RBAC(Role-Based Access Control,基于角色的访问控制)

1. RBAC核心概念 RBAC&#xff08;Role-Based Access Control&#xff0c;基于角色的访问控制&#xff09;是一种广泛应用于软件和系统中的权限管理模型。它通过将用户与角色关联&#xff0c;再将角色与访问权限关联&#xff0c;来管理用户对系统资源的访问。RBAC模型的主要特…...

C++const指针的两种用法

const int *p &a; 指向const变量的指针 指向const变量的指针const修饰的变量&#xff0c;只能由指向const变量的指针去指向 p &a1;const的位置&#xff0c;必须在*的左边指向const变量的指针&#xff0c;可以被改变&#xff0c;可以指向别的变量可以指向普通变量&am…...

如何真正掌控聊天数据?开源工具WeChatMsg的隐私保护与数据备份方案

如何真正掌控聊天数据&#xff1f;开源工具WeChatMsg的隐私保护与数据备份方案 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trend…...

XCP标定协议实战:从CAN到以太网的多协议适配指南(附A2L文件解析)

XCP标定协议实战&#xff1a;从CAN到以太网的多协议适配指南&#xff08;附A2L文件解析&#xff09; 在汽车电子开发领域&#xff0c;标定协议如同神经系统般连接着ECU与开发工具。当工程师面对不同硬件平台和传输协议时&#xff0c;如何实现XCP协议的灵活适配成为提升开发效率…...

Z-Image-Turbo-rinaiqiao-huiyewunv 开发工具链:使用Cursor智能IDE加速模型集成代码编写

Z-Image-Turbo-rinaiqiao-huiyewunv 开发工具链&#xff1a;使用Cursor智能IDE加速模型集成代码编写 1. 引言 如果你正在尝试把Z-Image-Turbo这类图像生成模型集成到自己的项目里&#xff0c;可能遇到过这样的场景&#xff1a;对着API文档&#xff0c;一行行敲着重复的请求代…...

Stable-Diffusion-v1-5-archive行业落地:教育课件配图、自媒体封面、独立游戏素材生成

Stable Diffusion v1.5 Archive&#xff1a;教育课件、自媒体封面与独立游戏素材的生成利器 1. 引言&#xff1a;一个经典模型&#xff0c;三个创意场景 如果你是一位教育工作者&#xff0c;是否曾为找不到合适的课件配图而烦恼&#xff1f;如果你是一名自媒体创作者&#xf…...

18-宠物领养系统 mysql+springboot+vue

文档地址 1. 系统简介: 致力于为无家可归的宠物找到一个温暖的家园。作为一个非盈利性的宠物领养平台&#xff0c;目标是通过提供全面的领养信息和专业的宠物照顾知识&#xff0c;促进人们对宠物的了解和关爱。 2. 技术栈: 技术&#xff1a; 基于 B/S 架构 SpringBootMySQL…...

Vivado时序报错排查与跨时钟域处理实战指南

1. Vivado时序报错排查基础 遇到Vivado时序报错时&#xff0c;很多开发者第一反应是直接修改约束文件&#xff0c;这其实是个误区。我建议先从代码层面入手排查&#xff0c;因为大多数时序问题根源都在RTL设计上。打开Vivado的时序报告&#xff0c;你会看到类似"Setup/Hol…...

Qwen3-14B大模型推理部署教程:支持对话/生成/推理多任务实战

Qwen3-14B大模型推理部署教程&#xff1a;支持对话/生成/推理多任务实战 1. 快速了解Qwen3-14B镜像 Qwen3-14B是通义千问推出的大语言模型&#xff0c;支持对话、文本生成和逻辑推理等多种任务。这个私有部署镜像经过专门优化&#xff0c;让你能在自己的硬件上快速运行这个强…...

免费开源一款聚合支付系统,已封装微信、支付宝、PayPal、京东、银联、QQ等支付方式

大家好&#xff0c;我是小悟。 众所周知&#xff0c;几乎所有商业应用都离不开支付功能&#xff0c;但支付集成却常常成为开发者的"痛点"。 面对微信支付、支付宝、银联等众多支付渠道&#xff0c;每个平台都有自己复杂的API、不同的签名机制和开发规范。 开发者往往…...

Qwen3-14B虚拟机开发环境:在VMware Ubuntu中部署与测试模型

Qwen3-14B虚拟机开发环境&#xff1a;在VMware Ubuntu中部署与测试模型 1. 前言&#xff1a;为什么选择虚拟机开发环境 在AI模型开发过程中&#xff0c;环境隔离是个常见需求。虚拟机提供了一个完美的沙盒环境&#xff0c;既能避免污染主机系统&#xff0c;又能方便地进行各种…...

别再死记硬背了!用LL(1)预测分析法图解编译原理语法分析,5分钟搞懂First和Follow集

用派对邀请链和拆礼物理解LL(1)语法分析&#xff1a;First集与Follow集的趣味图解 想象你正在策划一场派对&#xff0c;需要根据客人的喜好安排座位。First集就像拆开礼物盒时最先看到的物品&#xff0c;而Follow集则是始终跟在某位客人身后的"小跟班"。这种生活化的…...