1

すべてのページにいくつかの重要なカウンターがあり、Web サイトの負荷が高いとします。それらは、1 時間程度で自動的に期限切れになる一連の Redis キーに保存されます。

コードでは、カウンターを含むキーが存在するかどうかを確認し、存在しない場合は、負荷の高い操作 (MySQL で複数の WHERE を持つ COUNT(*) としましょう) を実行してその値を再計算し、キーの新しく再計算された値。

<?php
  $counter = $redis->get('My:Heavy_Counter');
  if ($counter === null) {
    $counter = $counter->recalculate();
    $redis->set('My:Heavy_Counter', $counter);
  }
?>

問題は、各 Web ページ クライアントが上記の操作を行うことです。

他の何千ものクライアントを待機させながら、最初のクライアントのリクエストだけでこれらのキーを再計算するエレガントな方法はありますか?

4

1 に答える 1