Le type de données chaîne de Redis est le type de données le plus simple, mais c'est également la base pour apprendre d'autres types de données Redis. Ce qui suit présente plusieurs applications de Redis.
Limitation de courant
L'utilisation de Redis peut limiter le courant. Redis lui-même a des performances extrêmement élevées et peut être utilisé pour résister à certaines demandes.
Défendre contre un trafic important
De nos jours, les attaques de sites Web sont de plus en plus répandues. Les ressources statiques peuvent être protégées par CDN, mais comment défendre les dynamiques. programmes. Ci-dessous, nous montrons une solution Redis pour se défendre contre un grand nombre de requêtes.
L'idée de base est de limiter le nombre de requêtes pour une IP sur une certaine période de temps. Par exemple, le nombre de requêtes pour une IP ne peut pas dépasser 10 fois par seconde.
Le pseudo-code est le suivant :
function ip_limit($cnt = 10) { $ip = $_SERVER['SERVER_ADDR']; $key = "limit:$ip:cnt"; $isExisit = $redis->set($key, 1, ['nx', 'ex'=>1]); if (!$isExisit || $redis->incr($key) <= $cnt) { // 通过 return true; } else { // 不通过 return false; } }
Obtenir la limite de fréquence du code de vérification
Le code de vérification par SMS est désormais devenu un application Web En standard, de nombreux endroits exigeront des codes de vérification par SMS. Par exemple : lors de l'inscription, de la modification des mots de passe et de certaines opérations qui nécessitent des exigences de sécurité plus élevées. Bien entendu, l’obtention de codes de vérification n’est pas gratuite, nous ne souhaitons donc pas que les utilisateurs obtiennent des codes de vérification sans limite.
La même idée est utilisée. Nous pouvons écrire une application qui limite la fréquence d'obtention des codes de vérification SMS.
Remplissez une application qui ne vous permet d'obtenir un code de vérification qu'une seule fois en une minute. Le pseudo code est le suivant :
function code_limit($mobile, $time = 60) { $key = "limit:$mobile:cnt"; $isExisit = $redis->set($key, 1, ['nx', 'ex'=>$time]); if (!$isExisit) { // 通过 return true; } else { // 不通过 return false; } }
Enregistrer la session<🎜. >
Utiliser Redis pour stocker les sessions est désormais la méthode recommandée. Ses avantages sont des performances élevées et une extase automatique à son expiration. (Le mécanisme de récupération de place de session de PHP n'est pas fiable et il existe une probabilité d'extase expirée). Cette méthode est très simple, il suffit de modifier le fichier php.ini. Trouvez la ligne session.save_handler et remplacez-la parsession.save_handler = redis
session.save_path = "tcp://localhost:6379"
session.save_path = "tcp://localhost:6379?auth=password"
session.save_handler = redis session.save_path = "tcp://192.168.1.220:6379?auth=password"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!