我需要爲每個IP地址的用戶存儲一條記錄,以限制某個IP地址可以執行操作的速率。存儲IP地址記錄(DB備選)
我知道將IP存儲在數據庫中可行,但我擔心在資源有限的小型VPS中,MySQL進程會佔用太多的處理能力。是否有另一種存儲IP數據的方式?
我認爲類似的系統:
/ips/
/ips/127/
/ips/127/0
/ips/127/0/0
/ips/127/0/0/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
}
與包含所需數據的1.txt文件。我會遇到導致此方法比數據庫更慢的文件或文件夾數量問題嗎?
不要擔心你的VPS - MySQL對此很好 - 做了很多次。 – 2012-01-03 15:54:56
...或者你可以使用[SQLite](http://php.net/manual/en/book.sqlite.php)來避免運行一個單獨的應用程序。 – DaveRandom 2012-01-03 15:56:05
如果這是一個性能問題,你會遇到更大的問題。 – 2012-01-03 15:57:42