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

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.xdnf.cn/news/19057.html

相关文章:

  • 【MYSQL | 基础篇 多表查询】
  • FunctionAI 图像生成:简化从灵感到 API 调用的每一步
  • Kingbase-Mysql兼容模式下LOAD DATA INFILE语法再体验
  • idea控制台从properties中取值然后打印出现控制台乱码问题
  • (论文速读)MAPTNet——少样本表面缺陷分割方法
  • Java图形图像处理【基础篇】【二】
  • 前端-什么是Vue
  • DMZ层Nginx TLS 终止与安全接入配置实战20250829
  • OpenCV 图像轮廓检测与相关技术全解析
  • 三维铸件模型分解:基于微分几何与拓扑结构的分析方法
  • Ubuntu虚拟机磁盘空间扩展指南
  • 基于LangChain框架搭建AI问答系统(附源码)
  • InnoDB存储引擎底层拆解:从页、事务到锁,如何撑起MySQL数据库高效运转(下)
  • MySQL 中如何解决深度分页的问题?
  • 嵌入式接口通识知识之RGB接口
  • 基于机器学习的多个模型的预测Backtrader自动化交易系统设计
  • 关于shell命令的扩展
  • AlexNet:点燃深度学习革命的「卷积神经网络之王」
  • 接口测试工具:Postman详解
  • 计算机专业考研备考建议
  • idea2025.2中maven编译中文乱码
  • 编译esp32报错解决办法
  • 机器学习复习
  • 【go】三端实时反馈系统的设计,websocket实现
  • 12.压缩和打包
  • 创建第一个 Electron 应用:Hello World 示例
  • 【算法】15. 三数之和
  • 阻塞,非阻塞,同步,异步的理解
  • Linux -- 进程间通信【命名管道】
  • 【golang长途旅行第34站】网络编程