特定のIPアドレスがアクションを実行できる速度を制限するために、IPアドレスごとにユーザーのレコードを格納する必要があります。IPアドレスのレコードを保存する(DB代替)
IPをデータベースに保存することはできますが、限られたリソースを持つ小さなVPSでは、MySQLプロセスが処理する電力が大きすぎると心配しています。 IP用のデータを格納する別の方法はありますか?
私はと同様のシステムを考えた:必要なデータを含む1.TXTファイルで
$ip_parts = explode('.', $_SERVER['REMOTE_ADDR']);
$records = intval(file_get_contents('ips/' . implode('/', $ip_parts)));
if($records > 50) {
echo 'Error - credits used.';
} else {
// Do something
}
:
/ips/
/ips/127/
/ips/127/0
/ips/127/0/0
/ips/127/0/0/1.txt
サンプルコード。この方法がデータベースよりも遅くなるファイルやフォルダの数に問題が発生しますか?
あなたのVPSについて心配しないでください - MySQLはこれには問題ありません。何度もやりました。 –
... [SQLite](http://php.net/manual/en/book.sqlite.php)を使用すると、別のアプリケーションを実行する必要がなくなります。 – DaveRandom
これがパフォーマンスの問題である場合は、はるかに大きな問題があります。 –