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

caffeine 发生缓存内容被修改以及解决方案-深度克隆

楼主的项目是当redis down机时走caffeine。直接重写了rediscache。后面发现缓存的数据会变化。所以写了点克隆代码。优先使用序列化接口 。然后不行就类型推断。

private Object cloneObject(Object obj) {
if (obj == null) {
return null;
}

    // First step: try Apache Commons SerializationUtilsif (obj instanceof Serializable) {try {return SerializationUtils.clone((Serializable) obj);} catch (Exception e) {log.warn("Failed to clone Serializable object using SerializationUtils. Object class: {}",obj.getClass().getName(), e);}}// Second step: try Jackson with type inference and type informationtry {byte[] bytes = objectMapper.writeValueAsBytes(obj);return objectMapper.readValue(bytes, new TypeReference<>() {});} catch (Exception e) {log.warn("Failed to clone object using Jackson with type inference. Object class: {}",obj.getClass().getName(), e);}// If all methods fail, return original objectreturn obj;
}
http://www.dtcms.com/a/389883.html

相关文章:

  • rust编写web服务06-JWT身份认证
  • 《怪猎:荒野》制作人:PC平台对日本游戏非常重要
  • 大模型训练框架(二)FSDP
  • MySQL——系统数据库、常用工具
  • 蓝桥杯题目讲解_Python(转载)
  • 性能测试监控实践(九):性能测试时,监控docker微服务资源利用率和分析
  • TCP,UDP和ICMP
  • Python语法学习篇(七)【py3】
  • 网页控制鼠标 查看鼠标位置
  • PIT 定时器
  • 【题解】 [蓝桥杯 2019 省 B] 特别数的和
  • 数字隔离器,串口通信的安全之“芯”
  • 山脊图 (Ridgeline Plot):使用 joypy 库,优雅地比较多组数据的分布情况
  • Linux 进程同步以及僵尸进程等知识介绍
  • Python进程和线程
  • 斐波那契数列的递归和迭代实现
  • 时空预测论文分享:规则知识 因果预测框架 面向研究的评估体系 主动适应漂移
  • 《WINDOWS 环境下32位汇编语言程序设计》第18章 ODBC数据库编程
  • linux入门(3)
  • 任意版本GitLens vscode插件破解邪修秘法
  • Redis最佳实践——热点数据缓存详解
  • font简写和CSS的继承性
  • 高性能服务器配置经验指南6——BIT校园网在ubuntu中的自动检查连接状况脚本使用
  • SQL 连接详解:内连接、左连接与右连接
  • C2000基础-TIM介绍及使用
  • Day 06 动作类的初始化类------以B1为例
  • 面试题:对数据库如何进行优化?
  • samurai 点选分割 box分割
  • 计算机架构的总线协议中的等待状态是什么?
  • C++:入门基础(1)