我需要为每个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