gpt4 book ai didi

caching - 缓存失效和缓存服务器重启

转载 作者:可可西里 更新时间:2023-11-01 11:01:27 26 4
gpt4 key购买 nike

我的应用程序对缓存服务器重启具有弹性(好吧,想要,但不要介意)。这意味着,如果缓存(Redis,在主/从集群配置中)变得不可用(例如,整个集群变得不可用),应用程序可以通过关闭缓存密集型功能来优雅地降级并且仍然工作 - 缓慢。

由于我在主/从模式下使用 Redis,我必须将状态保存到文件系统,以便主从同步更加高效。这意味着当服务器重新启动时,它会加载它从前一个化身看到的数据。

在我需要在整个集群宕机时发送一条缓存失效消息之前,上面的代码工作得很好。流程是这样的:

  1. 缓存正常
  2. 应用服务器将数据 X=Y 放入缓存。 X=Y保存到缓存文件系统。
  3. 缓存失败,去重启。
  4. 应用程序服务器收到一个命令,将 X 操作为 Y' - 想要为 X 发送缓存失效。失败 - 缓存没有响应(仍然关闭)。由于缓存是可选的,因此应用服务器会记录并继续。
  5. 缓存备份 - 从文件系统加载数据,包括 X=Y
  6. 应用程序服务器收到服务 X 的请求 - 转到缓存并查看之前的数据 X=Y。即使数据库中有 Y',也正在为 Y 提供服务。问题。愤怒的顾客。

如何解决这个问题 - 特别是在具有主/从场景的 Redis 中(从当前仅用于更快的故障转移)。

最佳答案

既然我们在这里讨论缓存,我会推荐这两种方法:

  • 跳过 RDB,复制正常工作不需要它
  • 当 redis 和您的应用无法通信(例如网络 split )时刷新您在 redis 上的缓存

关于caching - 缓存失效和缓存服务器重启,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19953057/

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