完蛋了,用户登录token集体失效,我的拖字诀还是好用

前两天测试同学在群里反馈说测试环境经常会自动退出登录,需要手动重新登录,很麻烦。

本着不主动揽活的原则,我当时眼睛突然就瞎了。

好景说长也长说短也短,5个月之后,其他同事也陆续反馈,估计真受不了了。

老大特意@了我,我当时眼睛也正好瞎了,不过有一个前端同学眼睛贼好。老大顺带@了他,他说他要试试。

确实 token 有可能前端"无意间"调用了登出接口,导致的过期。这个想法非常合理。

我承认我应该向他学习的,但我手上的活实在是太多了。每次和 AI 神仙打架,AI 都表现得跟条死鱼一样,我不得不花时间和她多说几次:"给我可以运行的代码!!!"

后面前端哥们估计也是找不出原因来,这个事情就又搁置下来了,没人记得我,也没人在乎我。

痛吗?怎么可能痛?爽飞了。

但是,但是,但是。好景再一次不长。这次老大直接@我一个人了,要命的是老板还点了个+1。

为了避免年底喜提年终,我不得不先应下来,但也是能拖就拖。毕竟和 AI 神仙打架好玩点,看起来就是在使用前沿科技 vibe coding,实际上就是和 AI 对线扭打。

每天的类不再是身体的,而是骂不过 AI 的心累。哎,同时代码写的依托答辩,我还能喷赢他。如今连机器人写出依托答辩出来,我都骂不过,我真是个垃圾啊。

玩归玩闹归闹,找bug还得有人靠。于是我广发英雄帖,征求各大 AI 大佬的意见。他们从没如此一致过,说是我的用户登录态过期了,或者是误删了。

要不我学过点 Redis 皮毛还真被这些带佬蒙过去了。鄙人想偷懒才让你们分析,分析不对我自己也略懂一些拳脚。

再来回看 bug 的表现:

  • 没有登出的时候token失效了
  • 几个人集体发生
  • 生产环境没有出现
  • 生产环境和测试环境代码一样
  • 近期没有改动账户服务

代码一样,那就找不一样的。那比较明显了,环境不一样,一个叫生产一个叫测试。嘿嘿

这就涉及到一个哲学问题:测试环境为什么叫测试环境?生产环境为什么叫生产环境?

一般来说就是测试环境是用来测试的,正式环境一般是给用户用来生产的。牛逼吧?

说人话就是测试环境是给内部人用的,正式环境是给义父们用的。

再说人话就是,内部人能有几个人,老板给个配置最差的 Redis,你都不能怨他。

所以我的猜想是什么呢?就是生产环境的 Redis 配置很高,测试环境的配置很低。

Redis 用的默认的内存策略 LRU,所以内存满了就会驱逐一部分 Key。

有了这个猜想,接下我们就要来验证一下猜想是否准确?

我看了一下生产环境和测试环境之间的差不别,你猜怎么着?

测试和生产之间的差别就是:生产的 Redis 内存 256G,测试的 Redis 内存 16M。

是的你妹看错,是16M。不是16G也不是256M,而是整整16M啊。

多磨勤俭持家的老板啊,为了省下点钱给我们发年终,涨工资。

他都不惜买最低配的服务器,给自己买最低配的跑车。一切都是为了员工的收入,也能理解。

这个配置文件显示测试环境运行的 Redis 就是16M的内存,还显示达到最大内存时的淘汰策略是 lru。

也就是内存满时,把最近最少使用的key给干掉,腾出存储空间来。

不信邪可以在 Redis-cli 执行命令看看实际上是不是这样

shell 复制代码
> INFO MEMORY
# Memory
used_memory_human:8.47M
maxmemory_human:16.00M
maxmemory_policy:allkeys-lru
....

心死了,还真是,再查一下被驱逐的 key 有多少

shell 复制代码
> INFO STATS
# Stats
evicted_keys:53725
...

这下心死透了,直接联系老板手下的运维大将,能不能将 16M 的 Redis 做个升级,升级到 32M?

没想到运维大将竟然直接答应了,还给升级到了 256M,我真是太感谢他了。还好有他,不然我元旦出门都要带电脑。

就酱。

相关推荐
sthnyph19 小时前
docker compose安装redis
redis·docker·容器
KmSH8umpK19 小时前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第六篇
数据库·redis·分布式
KmSH8umpK1 天前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第四篇
数据库·redis·分布式
KmSH8umpK1 天前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第五篇
数据库·redis·分布式
贾红平1 天前
Redis缓存策略深度解析2026
redis
yuweiade1 天前
GO 快速升级Go版本
开发语言·redis·golang
运维全栈笔记2 天前
K8S部署Redis高可用全攻略:1主2从3哨兵架构实战
redis·docker·云原生·容器·架构·kubernetes·bootstrap
凯瑟琳.奥古斯特2 天前
Redis是什么及核心特性
前端·css·redis·缓存
KmSH8umpK2 天前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第三篇
redis·分布式·wpf
HUGu RGIN2 天前
Linux部署Redis集群
linux·运维·redis