完蛋了,用户登录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,我真是太感谢他了。还好有他,不然我元旦出门都要带电脑。

就酱。

相关推荐
Li_76953217 小时前
Redis 进阶(三)—— 主从复制(一)
redis
optimistic_chen19 小时前
【Redis 系列】常用数据结构---SET类型
linux·数据结构·数据库·redis·set·数据类型·命令行
uup20 小时前
SpringBoot 集成 Redis 缓存实践
java·redis
陌路2021 小时前
redis智能缓存策略--思想
数据库·redis·缓存
galaxyffang1 天前
Redis 的 16 个数据库应用场景
数据库·redis·缓存
记得开心一点嘛1 天前
布隆过滤器解决缓存穿透
redis·缓存
努力努力再努力wz1 天前
2025年度总结:不断迈出第一步
linux·运维·服务器·数据结构·redis·python·django
小北方城市网1 天前
第 6 课:全栈项目性能 & 安全双进阶 ——Redis 缓存 + JWT 认证(打造高并发高安全后端)
开发语言·数据库·redis·python·安全·缓存·数据库架构
图南随笔1 天前
Spring Boot(二十四):Redis几种数据类型的适用场景对比
java·spring boot·redis