특정 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은 여러 번 해보았습니다. –
... 또는 [SQLite] (http://php.net/manual/en/book.sqlite.php)를 사용하여 별도의 응용 프로그램을 실행하지 않아도됩니다. – DaveRandom
성능 문제가있는 경우 훨씬 큰 문제가 있습니다. –