// 加鎖防止緩存擊穿$lockKey = "lock_user_123";if ($redis->setnx($lockKey, 1)) { // 加鎖成功
$data = $redis->get("user_123");
if (!$data) {
$data = $db->query(...);
$redis->set("user_123", $data, 3600);
}
$redis->del($lockKey); // 釋放鎖} else {
// 等待片刻重試或返回舊數(shù)據(jù)
sleep(0.1);
return get_user_data(123); // 遞歸重試}