將緩存時間隨機變化,若是系統的緩存數據(key)比較多,隨機區間能夠放大些。php
一個php的隨機緩存時間示例緩存
/** * 隨機緩存時間 避免緩存雪崩效應 * @param $time * @return mixed */ public static function randomCacheTime($time){ $time = intval($time); $plus = rand(0 , 1); if($plus){ return $time + rand(0, 60); }else{ return $time - rand(0, 60); } }
使用示例dom
/** * 獲取名稱 * 緩存1小時 * @param $id * @return string */ public static function queryName($id){ if(!$id){ return ''; } $key = 'name_'.$id; $name= S($key); if(!$name){ $name= M('names')->where(array('id' => $id))->getField('name'); S($key, $name, self::randomCacheTime(3600)); } return $name; }