当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何在高负载网站上的memcached中处理过期项目(由于TTL)?》经验,为你挑选了1个好方法。

当您有600个请求/秒的峰值时,由于TTL到期而刷新项目的内存缓存有一些非常不利的影响.几乎在同一时间,200个线程/进程发现缓存为空并触发数据库请求以再次填充它

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

ps这种情况的术语是什么?(让我有机会在主题上获得更好的谷歌搜索结果)



1> integer..:

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

我发现这被memcached伙伴称为"踩踏牛群",他们在此讨论:http://code.google.com/p/memcached/wiki/NewProgrammingTricks#Avoiding_stampeding_herd

我的下一个建议实际上将使用上面链接中讨论的软缓存限制.

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有