Gambaran keseluruhan prinsip:
Program ini akan menentukan kepingan masa Semakin kecil kepingan masa, semakin tinggi ketepatan kawalan. Kawalan akses melibatkan beberapa keping masa.
Apabila program memerlukan penambahan rekod akses pada masa tertentu, ia akan terlebih dahulu mengira hirisan masa yang akan digunakan berdasarkan masa semasa dan menambah 1 pada pembilang hirisan masa ini.
Apabila program menentukan berapa kali ia telah diakses dalam satu tempoh masa, ia akan terlebih dahulu mengira berapa banyak hirisan masa dalam tempoh ini, kemudian keluarkan semua kepingan masa ini, tambahkan pembilang dan kembalikan.
Pengenalan prinsip ada di sini, dan kod sumber berkaitan program ada di sini (nodejs)
Cara menggunakan Redis untuk membina modul kawalan frekuensi akses
Contoh penggunaan (nodejs ):
varredback=require('redback').createClient(),
ratelimit=redback.createRateLimit('requests');
//IncrementthecountforthespecifiedIP
ratelimit.add( '127.0.0.1');
//Countthenumberofrequestsinthelast20saat
ratelimit.count('127.0.0.1',20,function(err,requests){
jika(permintaan> ;30){
//Throttletheuserin someway..
}
});
Atas ialah kandungan terperinci Bagaimana untuk membina modul kawalan frekuensi capaian dengan Redis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!