Maison > Article > développement back-end > php redis à toute heure définie
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].
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!