Hannibal22 2021-03-16 16:03 采纳率: 50%
浏览 82
已采纳

短时间使用同一个账号大量调用登录接口,但是redis中的登录信息数据没有被删除?

登录成功会在redis中保存两条数据,第一条是key=登录账号id,value=随机生成token;第二条是key=随机生成token,value=登录账号信息。同一个账号不断登录时,就会先判断key=登录账号id的数据是否存在,存在则再判断key=随机生成token也是否存在,如果存在则删除这个key=随机生成token,然后重新生成新的token并设值。这样就会每次同一个账号登录都只会生成这两条数据,不同的是每次的生成token不一样。

现在的问题是,压力测试使用同一个账号短时间内大量调用登录接口,看redis中key=随机生成token的这条数据没有被删除,,导致生成大量key=随机生成token的数据没有被删除。百度查 也没查到 是啥原因。

  • 写回答

6条回答 默认 最新

  • 叫我磊哥 2021-03-16 16:30
    关注

    例如:
    第一次访问:
    1、第一次存入redis:key=1,value=123
    2、第二次存入redis:key=123,value=userInf


    第二次访问:
    1、判断key=1,命中redis不进行二次存储
    2、判断key=123,命中redis,
    后续逻辑为:
       删除当前key=123数据
       生成新的key=234数据
       (关键在于这一步少了一个逻辑,没有更新:key=1,value=234数据,导致后续请求不能二次命中token数据,所以  redis中的数据就多了)
    3、第三次存入redis:key=234,value=userInf


    第三次访问:
    1、判断key=1,命中redis不进行二次存储
    2、判断key=123,未命中redis,
    猜测后续逻辑为:
       生成新的key=345数据
    3、第四次存入redis:key=345,value=userInf

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 C# datagridview 栏位进度
  • ¥15 vue3页面el-table页面数据过多
  • ¥100 vue3中融入gRPC-web
  • ¥15 kali环境运行volatility分析android内存文件,缺profile
  • ¥15 写uniapp时遇到的问题
  • ¥15 vs 2008 安装遇到问题
  • ¥15 matlab有限元法求解梁带有若干弹簧质量系统的固有频率
  • ¥15 找一个网络防御专家,外包的
  • ¥100 能不能让两张不同的图片md5值一样,(有尝)
  • ¥15 informer代码训练自己的数据集,改参数怎么改