gpt4 book ai didi

redis - 执行 SET 命令和实际更改保存的数据之间的延迟?

转载 作者:IT王子 更新时间:2023-10-29 06:12:11 24 4
gpt4 key购买 nike

对于我正在构建的应用程序,我们使用 Redis 作为 session 存储介质。

前几天,我们的一位测试人员注意到,当他注销然后立即尝试访问 protected URI(在注销后大约 1 秒内)时,他的旧 session 数据仍在用过。

步骤化:

  1. 用户以账户 A 登录。
  2. 用户注销。
  3. 用户立即访问 protected URI。
  4. 用户再次作为帐户 A 登录。

我认为发生的事情是这样的:

  1. 用户注销,因此应用程序清除用户的 session 并将空 session 发送到 Redis 进行存储。
  2. 在更改“生效”之前,用户访问不同的资源(例如,登录表单或 protected URI)。
  3. 应用程序从 Redis 请求 session ,其中仍然包含已登录的 session 值。
  4. 应用程序将更新后的 session 发送回 Redis,覆盖已注销的 session 。

这是正确的诊断吗? Redis 在接受 SET 和实际更新存储值之间是否有延迟?还是我应该调查我的应用程序逻辑中的某些内容?

最佳答案

SET命令的执行没有延迟。如果 redis-server 成功返回,并且您的客户端库报告成功 - 您可以确定 redis 已写入数据。

我建议查看您的应用程序堆栈。也许 session 处理程序正在异步使 session 无效?

关于redis - 执行 SET 命令和实际更改保存的数据之间的延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13071261/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com