Maison > base de données > Redis > Plusieurs applications de type chaîne Redis

Plusieurs applications de type chaîne Redis

齐天大圣
Libérer: 2020-05-11 13:06:39
original
1419 Les gens l'ont consulté

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;
    }
}
Copier après la connexion

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, [&#39;nx&#39;, &#39;ex&#39;=>$time]);
    
    if (!$isExisit) {
        // 通过
        return true;
    } else {
        // 不通过
        return false;
    }
}
Copier après la connexion

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 par

session.save_handler = redis
Copier après la connexion

Changez session.save_path par

session.save_path = "tcp://localhost:6379"
Copier après la connexion

Si vous avez défini un mot de passe pour Redis, remplacez-le simplement par

session.save_path = "tcp://localhost:6379?auth=password"
Copier après la connexion

S'il ne s'agit pas d'une application autonome mais d'une application distribuée, comment utiliser Redis pour gérer les sessions de manière centralisée ?

est également très simple. Modifiez simplement le fichier php.ini. Si la session est gérée de manière centralisée sur la machine 192.168.1.220, les fichiers php.ini des autres machines sont modifiés comme suit :

session.save_handler = redis
session.save_path = "tcp://192.168.1.220:6379?auth=password"
Copier après la connexion
Ce qui précède ne présente que quelques applications de type redis string. Les développeurs peuvent combiner des projets pratiques et leurs. propre Utilisez votre imagination pour créer plus d'applications


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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal