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

Redis与MySQL数据不一致问题

Redis与MySQL数据不一致

  • 起因
  • 解决办法
    • 一、使用Redis键过期功能模拟定时删除(临时办法)
    • 二、编写Shell脚本,使用CRON定时任务(长久、最可靠)
      • 1.创建 redis_delete_key.sh
      • 2. 给脚本执行权限
      • 3.设置CRON定时任务

起因

日常维护中,发现页面数据与数据库不一致

数据库

在这里插入图片描述

页面

在这里插入图片描述

解决办法

一、使用Redis键过期功能模拟定时删除(临时办法)

 # 连接到Redis服务器redis-cli# 设置键并同时设置过期时间SET sys_config:dataReport_allNumber "your_value" EX 300# 或者如果键已存在EXPIRE sys_config:dataReport_allNumber 300# 验证设置TTL sys_config:dataReport_allNumber# 这会返回剩余的秒数,确认过期时间已设置成功

二、编写Shell脚本,使用CRON定时任务(长久、最可靠)

1.创建 redis_delete_key.sh

备注:脚本不要放在挂载磁盘上,最好放在/home,/data上。放在挂载磁盘,会导致定时任务找不到脚本文件
#!/bin/bash# 设置Redis密码环境变量
export REDISCLI_AUTH="redis@123.com"# 打印开始时间
echo "=== Starting Redis cleanup script at: $(date '+%Y-%m-%d %H:%M:%S') ==="# 删除指定的Redis键并记录结果
echo "Deleting sys_config:dataReport_allNumber..."
redis-cli -h 127.0.0.1 -p 6379 DEL sys_config:dataReport_allNumberecho "Deleting sys_config:dataReport_yesterdayNumber..."
redis-cli -h 127.0.0.1 -p 6379 DEL sys_config:dataReport_yesterdayNumberecho "Deleting sys_config:dataReport_todayWaitNumber..."
redis-cli -h 127.0.0.1 -p 6379 DEL sys_config:dataReport_todayWaitNumber# 取消环境变量(可选,因为脚本结束后环境变量自动失效)
unset REDISCLI_AUTH# 打印完成时间
echo "=== Script completed at: $(date '+%Y-%m-%d %H:%M:%S') ==="# 空行,让日志更易读
echo "" 

2. 给脚本执行权限

chmod +x redis_delete_key.sh

3.设置CRON定时任务

#编辑定时任务
crontab -e
#编辑内容
59 7 * * * /home/delete_redis_keys.sh >> /tmp/redis_delete.log 2>&1
59 11 * * * /home/delete_redis_keys.sh >> /tmp/redis_delete.log 2>&1
59 17 * * * /home/delete_redis_keys.sh >> /tmp/redis_delete.log 2>&1
06 9 * * * /home/delete_redis_keys.sh >> /tmp/redis_delete.log 2>&1
#保存退出
:wq
http://www.dtcms.com/a/357348.html

相关文章:

  • python 转偶数
  • 【开题答辩全过程】以 基于JSP的养生网站系统为例,包含答辩的问题和答案
  • vue3的pinia
  • 基于51单片机的简易逻辑分析仪设计
  • C# NET5.0及以上版本中如何处理MySQL大数据查询
  • 49_基于深度学习的课堂行为检测识别系统(yolo11、yolov8、yolov5+UI界面+Python项目源码+模型+标注好的数据集)
  • 微功耗遥测终端机在城市管网压力/流量监测中的应用
  • Ventoy中文版:新一代多系统启动U盘解决方案
  • 【线性代数入门 | 那忘算8】洛谷P3389 高斯消元(内附行列式教学)
  • t-sql和sql的有哪些区别和联系
  • Linux中的IP命令详解
  • uac播放与录制
  • 音乐云测试报告
  • JavaSE-什么是语法糖
  • 入职体检肌酐偏高 尿蛋白偏高
  • 软件工程师的机械原理基础知识
  • 基于Spring Boot的短信平台平滑切换设计方案
  • 理想汽车智驾方案介绍专题 3 MoE+Sparse Attention 高效结构解析
  • 大白话说 AI 编程 Trae,小白进!
  • 每日算法题【二叉树】:另一棵树的子树、二叉树的构建及遍历
  • 赋能你的应用:英超实时数据接入终极指南(API vs. WebSocket)
  • OpenCV 图像轮廓检测与相关技术全解析
  • 阿瓦隆 A1346 107T 矿机深度评测:性能参数、能效及使用体验解析
  • 面试tips--java--equals() hashCode()
  • 莱特莱德:以“第四代极限分离技术”,赋能生物发酵产业升级
  • 自动驾驶中的传感器技术36——Lidar(11)
  • 可解释人工智能XAI
  • 手写MyBatis第40弹:手写MyBatis框架阶段性总结,你的ORM框架已达生产级雏形
  • 【nvidia-B200】生产报错common.h:14:10: fatal error: mpi.h: No such file or directory
  • (论文速读)RADIOv2.5:聚合式视觉基础模型