优化Redis缓存淘汰机制解决性能测试中报错率逐渐攀升问题

在高并发性能测试中,报错率上升与Redis缓存淘汰机制有关。分析发现,Redis内存达到上限时,LRU策略导致用户登录tokenid被误删。解决方案是调整为TTL策略,延长tokenid过期时间,缩短其他业务要素过期时间,最终实现报错率降低,系统稳定性提升。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在某个查询场景的性能测试过程中,遇到了一个问题:测试过程中报错率逐渐攀升。进一步检查后发现,在查询业务所在应用的后台日志和平台应用的后台日志中,都出现了用户登录相关的报错信息。经过排查分析,发现了问题的根源,并做出了解决方案。

问题描述

在测试过程中,发现报错率逐渐增加,并且在后台日志中出现以下错误信息:

查询业务应用后台日志:

2023-08-25 19:37:49.629 xxx-web [019c40515a0854f4,019c40515a0854f4] [http-nio-9900-exec-576] ERROR [BaseService.java:249] - 调用平台权限接口失败,基础资料调用平台权限数据查询接口失败!
com.ufgov.ma.exception.MaException: 基础资料调用平台权限数据查询接口失败!

被调用的平台应用后台日志:

用户未登录或会话过期!

排查过程

进行了以下排查步骤来找到问题的根源:

  1. 完成9750个用户登录,并登入Redis集群,使用命令keys userlogininfo:*查询。发现每个节点平均分配了3000多个用户的tokenid。
  2. 在执行业务压测时,观察到Redis缓存中的tokenid逐渐减少。
  3. 查看redis集群监控,内存达到上限。
  4. 检查Redis配置的缓存淘汰机制,发现设置为volatile-lru,即在设置了过期时间的键空间中,优先移除最近未使用的key。

问题分析

通过以上排查过程,初步得出以下结论和分析:

  • 用户登录时生成的tokenid被写入Redis缓存。
  • 在业务场景压测过
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值