1

环境:多台 web (30)、缓存 (8) 服务器和一台专用数据库服务器。

为了卸载数据库,中央 Redis 缓存和本地内存缓存已就位。

  • 大型公共事件数据根据时间表进行缓存和更新
  • 访问时单独缓存用户特定数据

当大量用户特定数据需求因事件而更新时,就会出现问题。

事件发生时,大约有 200K 的注册用户和大约 10K-20K 的用户(同时)来到该站点。平均每个用户有 5 个缓存键,总共有 50K - 100K 缓存键,其中包含需要更新的用户特定数据。

当前解决方案失败:

  1. 刷新用户缓存会使数据库过载(30 个网络服务器)
  2. 将所有数据加载到缓存中需要很长时间(仅使用了 10%)
  3. KEYS 和 SCAN 可以阻塞缓存(还没试过……这是个问题吗?)

在这种情况下,最佳做法是什么?

4

0 回答 0