记一次redis 基于spring实现类对同一个KEY序列化内容不同导致一次事故

我们的场景是这样的 我们对一个key:比如list.point.card:1

@Resourceprivate RedisTemplate redisTemplate;private ListOperations listOperations;@Beforepublic void init() {   listOperations = this.redisTemplate.opsForList();}对KEY通过列表数据结构往右推入队列一个集合
listOperations.rightPushAll(key, Lists.newArrayList(1111L,2222L));然后我们调用
@Autowiredprivate StringRedisTemplate redisTemplate;
redisTemplate.expire(key, 10,TimeUnit.SECONDS);
本来的意图是想对上面的那个key设置过期时间,但因为
RedisTemplate默认对KEY的序列化是按JKD序列化方式来的,也就是存入reids的KEY是一串乱码

记一次redis 基于spring实现类对同一个KEY序列化内容不同导致一次事故

而用stringredisTemplate.expire其实是纯粹对list.point.card:1这个KEY加上了过期时间(尽管无效,因为压根没这个KEY存在),起不了对序列化之后的那个KEY起到过期时间

引起的问题是这个KEY对应的内容一直存在。这个时候 但凡key对应的内容发送变化,你用原来的内容去业务操作,会发生问题!!!

Original: https://www.cnblogs.com/StarbucksBoy/p/14633651.html
Author: 陶朱公Boy
Title: 记一次redis 基于spring实现类对同一个KEY序列化内容不同导致一次事故

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/616898/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 1. 什么是微服务 ?

    1 . 什么是微服务 ? 微服务主要有两个关键词 : 微和服务 服务 : 实现某种业务逻辑的模块或应用 微 : 望文生义,就是小的意思 SOA(service-oriented a…

    Java 2023年6月8日
    076
  • Spring Batch 批处理框架

    《Spring Batch 批处理框架》基本信息作者: 刘相出版社:电子工业出版社ISBN:9787121252419上架时间:2015-1-24出版日期:2015 年2月开本:1…

    Java 2023年5月30日
    072
  • MyBatis(二四):缓存——一级缓存

    MyBatis的缓存分为一级缓存和二级缓存。 先看一下MyBatis官方文档给出的说明: MyBatis 内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制。 为了使它…

    Java 2023年6月15日
    072
  • Flutter水印

    如何给Flutter页面添加水印? 可以通过OverlayState实现 如下效果图: 具体实现源码 时刻怀有一颗虔诚之心,乐于分享。知识才更有意义。 posted @2020-0…

    Java 2023年5月29日
    080
  • Java 8 Collectors.collectingAndThen()

    JDK源码 java.util.stream.Collectors#collectingAndThen方法的作用是将Collector的结果在执行一个额外的finisher转换操作…

    Java 2023年5月29日
    076
  • Slf4j的MDC初尝试

    本人使用Java两年时间,鉴于经验有限,在开发java后端代码过程中,为了定位问题,希望同一个线程的requestId可以从web层的日志一直输出到dao层,这样使用Linux命令…

    Java 2023年6月13日
    087
  • OptaPlanner实用技术-批量规划和实时规划(1)

    在日常的规划应用中,无论是APS,VRP还是排班场景,有两个极其常见的需求,分别是批量规划和实时规划。下面我们对这两种情况作更深入探讨。 顾名思义,该功能是指规划程序可批量地、且行…

    Java 2023年6月16日
    068
  • 【Spring源码分析】Bean加载流程概览(转)

    转载自:https://www.cnblogs.com/xrq730/p/6285358.html 代码入口 之前写文章都会啰啰嗦嗦一大堆再开始,进入【Spring源码分析】这个板…

    Java 2023年5月29日
    079
  • Android Swtich开关样式调整

    原文:Android Swtich开关样式调整 – Stars-One的杂货小窝 接入百度人脸的demo时候,发现了内置的switch开关比较好看,看了下实现方法,原来…

    Java 2023年6月13日
    066
  • axios二次封装

    查看代码 import axiox from ‘axios’ import store from "@/store"; import utils from &q…

    Java 2023年6月8日
    085
  • TypeScript(6)函数

    函数 函数是 JavaScript 应用程序的基础,它帮助你实现抽象层,模拟类,信息隐藏和模块。在 TypeScript 里,虽然已经支持类,命名空间和模块,但函数仍然是主要的定义…

    Java 2023年6月9日
    075
  • 体验.NET Core使用IKVM对接Java

    前言 与第三方对接最麻烦的是语言不同,因语言不同内置实现相关标准加密算法还是略微有所差异,对接单点登录场景再寻常不过,由于时间紧迫且对接方使用Java,所以留给我对接开发和联调的时…

    Java 2023年5月29日
    070
  • gulp: Did you forget to signal async completion? 解决方案

    学习gulp的前端自动化构建,按照示例代码,跑了一个简单的task,控制台打出如下提示: The following tasks did not complete: testGul…

    Java 2023年6月15日
    056
  • arthas 使用指导

    arthas 阿尔萨斯 这种命令行的东西首先得知道 如何使用帮助,帮助文档最先开始用的,应该是可以在网上找到的官方文档 文档一:https://alibaba.github.io/…

    Java 2023年6月5日
    074
  • Spring(三):IoC的本质

    一、图例 对照上面的图,我们回想上一篇中几个代码的实现,在没有set注入之前,代码运行完全由Service层控制,用户没有选择权,选择权在程序员手中;但是使用set注入之后,用户可…

    Java 2023年6月15日
    072
  • Spring @ResponseBody 返回中文乱码问题

    今天在使用spring 的时候,发现中文返回的是乱码。 经过研究发现,主要是@ResponseBody 引起的。主要是由于 @ResponseBody 返回字符串结果的时候,使用了…

    Java 2023年5月30日
    058
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球