ファイル キャッシュと memcache メモリ キャッシュ、どちらを選択すればよいですか?
会社のニーズにより、Web ページ上の各ユーザーのクリック状況と、どのリンクを入力したかを数えるように求められています。同社のウェブサイトへのアクセス数はおそらく 100 万 ip、800w pv を超えています。
当初、memcache はユーザーのクリック数をキャッシュするために使用され、クリック数が特定の数に達するとデータベースに書き込まれます。 ただし、同時実行性により、複数の PHP プロセスが同時にデータベースに書き込み、大量の重複データが発生するという問題があります。
同僚と私には 2 つの選択肢があります。1 つ目は、キャッシュされたデータを保存するために memcache に複数の配列を作成することです。1 つの配列は 1M を超えることはできません。次に、独立した PHP プロセスを使用してスケジュールされたタスクを実行し、memcache 内の配列を定期的にフェッチしてストレージを実行します。
私が使用する 2 番目の方法は、ファイル キャッシュを使用することです。memcache 内のクリック数が上限に達すると、データはファイルに保存され、memcache がクリアされます。次に、別のプロセスを使用して倉庫操作を実行します。
どれを選ぶべきですか?
-----解決策---------
データベースに保存する必要があるのに、なぜファイル キャッシュを使用するのでしょうか?
memcache 内のクリック数が上限に達すると、データはデータベースに保存され、memcache はクリアされます。
------解決策------------------
memcache が上限に達した場合は、急いでデータベースに保存しないでください。memcache キャッシュを再作成する必要があります。
これは次のように理解できます:
memcache キャッシュは 2 つあり、1 つは動作し、もう 1 つは後方で待機しています。前側が一定の限界まで機能したら、それを取り外し、もう一方を取り付けます。
典型的なシフトチェンジ。 。
これで問題が解決できるかどうかはわかりません