Maison  >  Article  >  développement back-end  >  php redis à toute heure définie

php redis à toute heure définie

coldplay.xixi
coldplay.xixioriginal
2020-10-08 14:47:352396parcourir

Comment définir l'heure dans PHP redis : 1. Annulez le temps de survie et définissez le temps de survie de la clé sur permanent, qui est PERSIST. Le code est [PERSIST session:captcha] ; temps de survie d'une commande, le code est [session TTL: captcha].

php redis à toute heure définie

Comment définir l'heure dans php redis :

Redis fournit un temps de survie pour les clés, lorsque le temps de survie est non spécifié, la durée de survie est éternelle. Redis supprimera automatiquement cette clé une fois le délai écoulé. Vous pouvez utiliser la commande EXPIRE. L'unité de temps est la seconde. Si une touche est configurée pour avoir un temps de survie limité, elle redeviendra permanente lorsque la touche SET sera réaffectée :

SET session:captcha sd2a
EXPIRE session:captcha 600

Annuler le temps de survie. et change La durée de vie de la clé est définie sur permanente, ce qui est PERSIST :

PERSIST session:captcha

Utilisez la commande TTL pour vérifier la durée de vie d'une clé -1 signifie permanente ou supprimée après expiration.

TTL session:captcha

Le temps de survie ne sera pas modifié pendant les commandes INCR, LPUSH, HSET, ZREM et autres de Redis.

Si vous souhaitez contrôler l'heure avec précision au millimètre près, vous avez besoin de PEXPIRE et utilisez PTTL pour vérifier le temps restant.

Et si vous souhaitez donner un délai d'expiration au lieu du nombre de secondes d'expiration ? Vous avez besoin d'EXPIREAT et de PEXPIREAT. Le paramètre de EXPIREAT est l'horodatage d'expiration (secondes), et le paramètre de PEXPIREAT est le délai d'expiration de l'horodatage (millisecondes)

SET session:captcha sd2a
EXPIREAT session:captcha 1399902009
PEXPIREAT session:captcha 1399902009000

Scénario d'application 1 : Limite de fréquence d'accès : Nous limitons chaque utilisateur à 1 minute seulement Peut parcourir 10 pages. Le pseudo-code est le suivant :

$isExists = EXISTS limit:user1:192.168.1.2
if($isExists){
    $num = INCR limit:user1:192.168.1.2
    if($num > 10){
        print '超过限制'
        exit
    }
}else{
    MULTI
    INCR limit:user1:192.168.1.2
    EXPIRE limit:user1:192.168.1.2 60
    EXEC
}

La raison pour laquelle nous utilisons des transactions est qu'après avoir exécuté INCR limit:user1:192.168.1.2, avant d'exécuter EXPIRE limit:user1:192.168.1.2 60, le client est ajouté Fermé. Ensuite, la clé et la valeur seront conservées. Et cet identifiant n’est accessible que 10 fois dans une vie. C'est dommage.

Si vous souhaitez en savoir plus sur la programmation, faites attention à la rubrique Formation php !

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!

Déclaration:
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
Article précédent:A quoi sert le tableau PhpArticle suivant:A quoi sert le tableau Php