Comment verrouiller Redis
Cet article présente principalement plusieurs méthodes de verrouillage dans Redis, et les partage pour votre référence et votre étude. Je ne dirai pas grand-chose ci-dessous, jetons un coup d'œil à l'introduction détaillée.
Classification de verrouillage Redis
Les commandes de verrouillage qui peuvent être utilisées par Redis sont INCR, SETNX, SET
La première commande de verrouillage INCR
L'idée de ce type de verrouillage est que si la clé n'existe pas, alors la valeur de la clé sera initialisée à 0 d'abord, puis exécuté. L'opération INCR en ajoute un.
Ensuite, lorsque d'autres utilisateurs effectuent l'opération INCR pour incrémenter de un, si le nombre renvoyé est supérieur à 1, cela signifie que le verrou est utilisé.
1. Le client A demande au serveur d'obtenir la valeur de clé de 1, indiquant que le verrou a été obtenu
2. Le client B demande également au serveur d'obtenir la valeur de clé de 2, indiquant que l'acquisition du verrou a échoué
3. Le client A termine l'exécution du code et supprime le verrou
4 Le client B attend un certain temps et obtient la valeur de clé de 1 lors de la création d'un verrou. demande, indiquant que l'acquisition du verrou est réussie
5. Le client B exécute le code et supprime le verrou
$redis->incr($key); $redis->expire($key, $ttl); //设置生成时间为1秒
Le deuxième verrou SETNX
Le L'idée derrière ce type de verrouillage est que si la clé n'existe pas, définissez la clé sur la valeur
Si la clé existe déjà, SETNX n'effectue aucune action
1. serveur pour définir la valeur de la clé. Si le réglage est réussi, cela signifie que le verrouillage est réussi
2. Le client B demande également au serveur de définir la valeur de la clé. Si le retour échoue, cela signifie que le verrouillage est effectué. échoué
3. Le client A termine l'exécution du code et supprime le verrou
4 Après avoir attendu un certain temps, le client B demande de définir la valeur de la clé et le réglage est réussi<. 🎜>
5. Le client B termine l'exécution du code et supprime le verrou$redis->setNX($key, $value); $redis->expire($key, $ttl);
Third Seed lock SET
Les deux méthodes ci-dessus auront un problème. constatent qu'ils doivent définir l'expiration de la clé. Alors pourquoi devons-nous définir l’expiration des clés ? Si l'exécution de la requête se termine de manière inattendue pour une raison quelconque, entraînant la création du verrou mais pas sa suppression, le verrou existera toujours, de sorte que le cache ne sera jamais mis à jour à l'avenir. Il faut donc ajouter un délai d'expiration au verrou pour éviter les accidents. Mais le définir avec Expire n'est pas une opération atomique. Par conséquent, les transactions peuvent également être utilisées pour garantir l'atomicité, mais il y a encore quelques problèmes, c'est pourquoi le responsable en a cité un autre. L'utilisation de la commande SET elle-même inclut la fonction de définition du délai d'expiration à partir de la version 2.6.12. 1. Le client A demande au serveur de définir la valeur de la clé. Si le réglage est réussi, le verrouillage est réussi 2. le retour échoue, cela signifie alors que le verrou a échoué3. Le client A termine l'exécution du code et supprime le verrou4. Le client B demande de définir la valeur de la clé après avoir attendu. une période de temps et le réglage est réussi5. Le client B termine l'exécution du code et supprime le verrou$redis->set($key, $value, array('nx', 'ex' => $ttl)); //ex表示秒
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Cet article relève des défis de compatibilité de la version Redis. Les mises à niveau de version majeure posent des risques de compatibilité importants en raison des modifications des commandes, des structures de données et de la configuration. L'article met l'accent sur les tests approfondis, en utilisant Redis-Cli

Cet article détaille les méthodes pour vérifier les versions Redis Server via la ligne de commande. La méthode principale, Redis-Cli Info Server, récupère efficacement les informations de version à partir de la sortie du serveur, fournissant une solution directe et fiable. Alternative a

L'article discute du choix des clés de fragment dans le cluster Redis, mettant l'accent sur leur impact sur les performances, l'évolutivité et la distribution des données. Les problèmes clés incluent d'assurer une distribution de données, une alignement sur les modèles d'accès et d'éviter les erreurs courantes L

Cet article détaille les méthodes de vérification des versions Redis Server. Il compare l'utilisation de redis-Cli --version et du serveur d'informations, examinant les fichiers de configuration, les listes de processus et les gestionnaires de packages. La commande Info Server dans Redis-Cli est identifiée comme t

Cet article détaille les numéros de version Redis, leur type de données de chaîne et les méthodes de vérification des versions (à l'aide de redis-CLI, de fichiers de configuration ou par programme). Il explore également les différences entre les versions principales, en se concentrant sur l'amélioration des performances

L'article traite des stratégies de mise en œuvre et de gestion de l'invalidation du cache dans Redis, y compris l'expiration basée sur le temps, les méthodes axées sur les événements et le versioning. Il couvre également les meilleures pratiques pour l'expiration du cache et les outils pour la surveillance et l'automate

L'article discute de la mise en œuvre de l'authentification et de l'autorisation dans Redis, en se concentrant sur l'activation de l'authentification, en utilisant les ACL et les meilleures pratiques pour sécuriser Redis. Il couvre également la gestion des autorisations et des outils des utilisateurs pour améliorer la sécurité Redis.

L'article explique comment utiliser Redis pour les messages pub / sous, couvrant la configuration, les meilleures pratiques, assurer la fiabilité des messages et la surveillance des performances.
