作者:75712533_6bdc45_141 | 来源:互联网 | 2013-12-26 17:26
一个关键词聚合页(http://www.chinabyte.com/list/A/)大概有30几万的关键词,包括2个页面:一是关键词列表页,二是关键词搜索结果页,这是页面搜索引擎爬虫抓取频率较高,经常导致服务器吃不消,这些关键词数据,包括搜索结果页都是做有memcache缓存的,缓存时间都为1周。
一个关键词聚合页(http://www.chinabyte.com/list/A/)大概有30几万的关键词,包括2个页面:一是关键词列表页,二是关键词搜索结果页,这是页面搜索引擎爬虫抓取频率较高,经常导致服务器吃不消,这些关键词数据,包括搜索结果页都是做有memcache缓存的,缓存时间都为1周。
对于服务器出现异常的原因,怀疑是关键词数据缓存失效的时间比较集中,导致有爬虫过来抓取的时候,在较短时间内频繁的对数据库进行读取操作。
现在想解决这个缓存失效时间集中导致服务器异常的问题,有2个方案:
1、设置随机缓存时间
$rand_minute = mt_rand(30, 60);
$rand_hour = mt_rand(1, 24);
$rand_day = mt_rand(3, 7);
$lifetime = 60*$rand_minute*$rand_hour*$rand_day;
想通过这种方式,在一段时候后,可以平均一下缓存时间,不至于太集中。
2、方案1+文件缓存
这是想到的解决方案,觉得通过设置这个随机缓存时间有点不靠谱,不知道有没有其他好的优化方案?