最近在开发一个用户积分排行榜功能,遇到了一个典型的缓存一致性问题。在并发量较高时,排行榜数据(从数据库聚合计算得出)的实时更新与缓存之间出现了数据不一致的情况。我目前采用的策略是「先更新数据库,再删除缓存」,但在峰值流量下,偶尔会出现缓存删除后、新缓存建立前的短暂时间窗口内,有大量请求直接穿透到数据库,造成瞬时压力过大。我也考虑过「延迟双删」或「订阅数据库Binlog」的方案,但对它们的实现复杂度和适用场景把握不准。想请教社区有实战经验的朋友,在高并发、对数据实时性要求较高的排行榜类业务中,有没有经过验证的、相对简洁可靠的缓存更新模式?特别是如何处理「缓存删除」到「新缓存建立」这个危险间隙的请求洪峰?希望能分享一些具体的实现思路或技术选型建议,感谢!
邀请回答
换一换
暂无数据