1

ユーザーが 24 時間以内に投票できる数を制限するモジュールをPligg CMSで構築する作業を行っています。制限 (1 日あたり 40 としましょう) を超えると、JavaScript ポップアップが表示され、「速度を落としてください!」と表示されます。... Digg がシステムを更新した方法に似ています。

毎日の投票を追跡する最良の方法は何ですか? 投票が制限を超えているかどうかを確認するために投票が行われるたびに、MySQL データベースにクエリを実行する必要がありますか? それとも、サーバー上のある種の物理ファイルにデータを保存する方が賢明ですか? キャッシュデータの作り方がよくわからないので、毎回投票数を手動でチェックする機能を作ろうと思っています。もちろん、より良い提案を聞きたいです!

4

2 に答える 2

4

データベースを使用して保存する - 特定の期間に投じられた投票数をデータベースに照会し、しきい値を下回っている場合は保存します。しきい値を超えている場合は、JavaScript アラートをポップバックして、ユーザーに問題を通知します。

于 2011-07-27T01:59:22.223 に答える
0

ボリュームが大きくなる場合は、memcached や membase などのスケーラブルなものを取得して追跡することをお勧めします。memcaced を使用する場合は、すべての投票が memcached のカウンターを更新し、同時に MySQL 統合レコードにロールアップされるログ エントリを追加するように実装する必要があります。これの良いところは、MySQL をマスター ソースとして維持できることです。これは、どんな速度でも追いつくことができます。つまり、追いつくのに数分遅れても、それほど問題ではありません。memcached コピーを更新しようとして、それが memcache にないことがわかった場合は、単に MySQL からカウントをフェッチするだけで、99.99% の同期されたカウントが得られないため、使用が 40 に達したときにポップアップを十分に補完できます。投票。

ただし、1 時間あたり数百票しか得られないと予想される場合は、OS スケーリング手段をキャッシュせずに MySQL を使用することをお勧めします。

于 2011-07-27T02:01:41.713 に答える