【问题标题】:Redis expiration replication to slavesRedis 过期复制到从站
【发布时间】:2020-05-28 18:38:40
【问题描述】:

我有兴趣使用 Redis 在服务器端存储客户的会话以进行授权。基本上,当客户登录时,哈希将存储在 Redis 集群中,并将密钥返回给客户端。在每个请求中,客户端将密钥作为标头传递,服务将检查哈希是否仍然存在于 Redis 中,如果不存在则返回错误消息。此密钥将在 X 分钟后过期,导致使用该密钥的任何请求都失败。但是,我一直在网上阅读,有些人因为过期复制到从站的方式而遇到了问题。从站仅在从主站收到 del 命令时才会使密钥过期,因此如果在此命令之前对从站进行“get”,则将返回该密钥处的值。

https://github.com/antirez/redis/issues/187

这个问题还存在吗?这对我来说似乎是一个大问题,并且会造成一些安全漏洞。对于陈旧的数据可能没什么大不了的,但是当用于授权时,它是一个大问题

【问题讨论】:

    标签: redis redis-cluster


    【解决方案1】:

    A) 不,不是真的——自 2014 年以来,即使从服务器尚未从复制流中收到 DEL,过期密钥的 GET 也会在从服务器上返回“未找到”。突出的问题与 EXISTS 与 GET 不一致有关,这仅在您依赖 EXISTS 命令的输出时才重要。

    B) 完全独立于这个问题,复制滞后的可能性始终存在。您的应用程序的安全性不应依赖于副本始终是最新的这一前提。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-25
      • 2018-05-26
      • 1970-01-01
      • 1970-01-01
      • 2020-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多