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

就酱。

相关推荐
学到头秃的suhian1 天前
Redis执行
redis
1104.北光c°1 天前
【黑马点评项目笔记 | 优惠券秒杀篇】构建高并发秒杀系统
java·开发语言·数据库·redis·笔记·spring·nosql
是阿楷啊1 天前
Java求职面试实录:互联网大厂场景技术点解析
java·redis·websocket·spring·互联网·大厂面试·支付系统
青树寒鸦1 天前
wsl的docker备份redis和迁移
redis·docker·容器
fengxin_rou1 天前
[Redis从零到精通|第三篇]:缓存更新指南
java·数据库·redis·spring·缓存
難釋懷1 天前
Redis分布式锁误删情况说明
数据库·redis·分布式
jiunian_cn1 天前
【Redis】hash数据类型相关指令
数据库·redis·哈希算法
踩坑小念2 天前
秒杀场景下如何处理redis扣除状态不一致问题
数据库·redis·分布式·缓存·秒杀
J_liaty2 天前
Redis 超详细入门教程:从零基础到实战精通
数据库·redis·缓存
難釋懷2 天前
优惠卷秒杀集群环境下的并发问题
redis·缓存