公司在搞一次活动时,服务器一个应用服务出现异常,结果导致前端不断请求最终导致请求量过大,资源耗尽。

追踪原因:

1、调出应用日志,发现这个请求为获取微信信息的接口,微信的access_token过期了导致微信拒绝服务

2、猜测是微信token创建接口被多个服务重复刷新导致access_token过期,由于存储在redis中,查看信息发现居然还有9个多小时有效期,实际上所有程序中写的都是2个小时,迷惑

3、调出access_token创建日志,发现是6月18号创建的(当前时间),实际上是17号创建的,询问运维人员说是为测试另一个项目将服务器时间往后推了24小时,gg。。。

4、经查询资料得知,redis过期策略是预先算出过期的时间戳,然后中间不断将当前时间与该时间戳比较。17号5:40创建了access_token,过期时间点应该是7:40,但服务器时间改动导致时间戳是18号7:40,后来服务器又恢复了正常时间,最终导致过期时间被延长了24小时

原因总结:

服务器时间不能乱改,懂得redis原理很重要!!!!!!

意外教训:开始不知道服务器时间改了,在查看logback日志时发现时间记录上面的居然比下面的还新,同一个日志文件上面是18号的日志,下面居然变成了17号,一度以为是logback出了bug,或者异步写入导致的。经同事提醒才询问运维人员是否改了服务器时间,

知识全面才不会意外背锅(一度被别人怀疑我的代码出了问题,悲戚)。

转载于:https://www.cnblogs.com/shaozhen/p/11043781.html

记录一次redis事故相关推荐

  1. 记录一次redis数据库搭建过程并详细说明配置

    redis.conf配置文件详解 Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 daemonize no 当Redis以守护进程方式运行时,Redis默认会把p ...

  2. 记录一次Redis未授权getshell几种常见方法

    记录一次Redis未授权getshell几种常见方法 一.redis未授权访问简介 Redis默认情况下,端口是6379,默认配置无密码 ./redis-server 使用默认配置 ./redis-s ...

  3. 实现 连续15签到记录_MySQL和Redis实现用户签到,你喜欢怎么实现?

    现在的网站和app开发中,签到是一个很常见的功能 如微博签到送积分,签到排行榜 微博签到 如移动app ,签到送流量等活动, 移动app签到 用户签到是提高用户粘性的有效手段,用的好能事半功倍! 下面 ...

  4. 学习记录,利用Redis的(sorted set)做每周热评的功能

    每周热议功能 大概思路 Redis 命令实践一下看看 代码来进行实现 前端展示出来 总结 大概思路 思路分析 做每周热议,应该用缓存来做,如果直接查库的话,会对数据库造成压力.用缓存做的话,用Redi ...

  5. [记录] --- linux安装redis

    获取redis资源 wget http://download.redis.io/releases/redis-具体版本.tar.gz 解压 tar xzvf redis-具体版本.tar.gz 安装 ...

  6. 记录一次redis漏洞攻击

    服务器挖矿病毒的排查过程 事情起因:朋友的一台阿里云主机,登录特别卡,找我看看 这一看就感觉出问题了,机器特别卡,top看了一眼,cpu几乎是100%运行 但是奇怪的是用top命令完全看不出来哪个进程 ...

  7. 记录一次生产事故MYSQL执行语句错误,回滚数据

    MYSQL执行语句错误,使用binlog回滚数据: 早上接到 leader 通知,说有个开发不小心将数据库的一张表数据全量使用update语句更新错误了,由于之前的备份数据是一周之前的,与用户使用存在 ...

  8. 记录bug:security+redis序列化失败no way to handle typed deser with setterless yet

    用 security加redis写项目时一直报这个错误,说是没有set方法?我用的data注解怎么可能 这个bug找了一上午,终于找到原因了:redis序列化会查询所有以get和set开头的方法,而我 ...

  9. 记录一次redis莫名其妙丢失token的解决方案

    因为测试需要所以把token设置为永不过期,但是过一段时间就会删除,key就会被删除 网上搜来搜去都是被攻击了,内存满了 内存是不可能满的,因为没有存什么东西,一开始以为是被攻击了,于是更换了密码 最 ...

最新文章

  1. 编程感悟-建立好代码sop
  2. Python NumPy-快速处理数据
  3. android context继承关系,android中Context深入详解
  4. Kotlin 4 构造,对象,修饰符,关键字,委托
  5. 函数和常用模块【day04】:函数参数及调用(二)
  6. php全选帖子删除,用PHP实现全选全删
  7. 2017.9.27 可持久化并查集 失败总结
  8. 简单的登陆拦截器在框架使用iframe时退出操作
  9. vue微信扫码登录过程
  10. ping网络通不通、ttl讲解、查询ip归属地、tracert路由分析诊断
  11. 让物联网为“中国制造”插上腾飞的翅膀
  12. python提取图片中的文字自动填表,python提取图片中的文字并生成word文档
  13. Catagory用法
  14. linux风扇转速,ubuntu系统调节GPU风扇转速
  15. mooc大数据技术原理与应用,对mooc的使用体验
  16. 电脑店、大白菜PE工具去除捆绑软件的方法
  17. 微信小程序8__一行2 列的布局,一行2列的图片布局
  18. 打印机故障——0x00000709错误
  19. Mac Cornerstone详细使用说明,图文教程
  20. 如何在SQL中将某个算出来的值平摊到每一行中使用

热门文章

  1. 2015年第六届蓝桥杯 - 省赛 - C/C++大学B组 - A. 奖券数目
  2. 机器人写诗项目——数据预处理
  3. 1048:有一门课不及格的学生
  4. nx set 怎么实现的原子性_【redis进阶(1)】redis的Lua脚本控制(原子性)
  5. pdfminer3k 官方文档_IPFS官方周报112期
  6. mysql 12142_php连接mysql的类mysql.class.php
  7. python split()方法_秘籍:10个Python字符串处理技巧(附代码)
  8. 编译原理什么是移进规约冲突_编译原理复习题
  9. C++学习笔记-----函数调用时的决议:名字查找,重载决议,可访问性检测
  10. liunx内核中的互斥自旋锁和读写自旋锁的实现详解