gpt4 book ai didi

caching - 如何处理高负载网站上 memcached 中的过期项(由于 TTL)?

转载 作者:行者123 更新时间:2023-12-02 16:37:26 27 4
gpt4 key购买 nike

当峰值达到每秒 600 个请求时,由于 TTL 过期而刷新项目的内存缓存会产生一些相当负面的影响。几乎在同一时间,200 个线程/进程发现缓存为空并触发数据库请求以再次填充它

处理这些情况的最佳做法是什么?

附:这种情况的术语是什么? (让我有机会获得有关该主题的更好的谷歌结果)

最佳答案

如果您有大量请求需要的 memcached 对象(您暗示就是这种情况),那么我会考虑使用一个单独的进程或 cron 作业来定期计算和刷新这些对象。这样它就永远不会达到 TTL。这是一种常见的权衡:您在低流量期间添加了一些不必要的负载,以帮助减少高峰期间(您可能最关心的时间)的负载。

我发现这被 memcached 的人们称为“stampeding herd”,他们在这里讨论:http://code.google.com/p/memcached/wiki/NewProgrammingTricks#Avoiding_stampeding_herd

我的下一个建议实际上是使用软缓存限制,如上面的链接中所述。

关于caching - 如何处理高负载网站上 memcached 中的过期项(由于 TTL)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3255810/

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