Maison base de données Redis Comment verrouiller un Redis

Comment verrouiller un Redis

Jun 28, 2019 pm 03:24 PM

Comment verrouiller un Redis

Classification de verrouillage Redis

Les commandes de verrouillage qui peuvent être utilisées par Redis sont INCR, SETNX et SET.

1. 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 d'abord initialisée à 0, puis l'opération INCR sera exécutée.
Ensuite, lorsque d'autres utilisateurs effectuent l'opération INCR pour en ajouter 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, ce qui signifie que le verrou est obtenu

2. Le client B demande également au serveur d'obtenir la valeur de clé de 2, ce qui signifie que l'acquisition du verrou échoue

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 d'une 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秒
Copier après la connexion

2 Le deuxième verrou SETNX

L'idée. derrière ce type de verrouillage, c'est que si la clé n'existe pas, définissez la clé sur valeur

Si la clé existe déjà, SETNX n'effectue aucune action

1. 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 a échoué.

3. Le client A termine l'exécution du code et supprime le verrou

4. Client 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

3. 🎜>

5. Le client B termine l'exécution du code et supprime le verrou

$redis->setNX($key, $value);
$redis->expire($key, $ttl);
Copier après la connexion

3. Le troisième type de verrou SET

Il y a un problème avec les deux méthodes ci-dessus. constatez que vous devez 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, l'atomicité peut également être assurée par le biais de transactions, mais il reste 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 verrou

4. 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éussi

5. Le client B exécute le code et supprime le verrou

 $redis->set($key, $value, array('nx', 'ex' => $ttl)); //ex表示秒
Copier après la connexion
Pour plus de connaissances sur Redis, veuillez visiter le Tutoriel d'utilisation de Redis rubrique !

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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment choisir une clé de fragment dans le cluster redis? Comment choisir une clé de fragment dans le cluster redis? Mar 17, 2025 pm 06:55 PM

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

Comment mettre en œuvre l'authentification et l'autorisation dans Redis? Comment mettre en œuvre l'authentification et l'autorisation dans Redis? Mar 17, 2025 pm 06:57 PM

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.

Comment utiliser Redis pour les files d'attente et le traitement des antécédents? Comment utiliser Redis pour les files d'attente et le traitement des antécédents? Mar 17, 2025 pm 06:51 PM

L'article discute de l'utilisation de Redis pour les files d'attente de travaux et le traitement des antécédents, la configuration de détail, la définition du travail et l'exécution. Il couvre les meilleures pratiques comme les opérations atomiques et la hiérarchisation des travaux, et explique comment Redis améliore l'efficacité du traitement.

Comment mettre en œuvre des stratégies d'invalidation du cache dans Redis? Comment mettre en œuvre des stratégies d'invalidation du cache dans Redis? Mar 17, 2025 pm 06:46 PM

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

Comment surveiller les performances d'un cluster redis? Comment surveiller les performances d'un cluster redis? Mar 17, 2025 pm 06:56 PM

L'article traite de la surveillance des performances et de la santé du cluster Redis à l'aide d'outils comme Redis CLI, Redis Insight et des solutions tierces comme Datadog et Prometheus.

Comment utiliser Redis pour les messages pub / sous? Comment utiliser Redis pour les messages pub / sous? Mar 17, 2025 pm 06:48 PM

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.

Comment utiliser Redis pour la gestion des sessions dans les applications Web? Comment utiliser Redis pour la gestion des sessions dans les applications Web? Mar 17, 2025 pm 06:47 PM

L'article traite de l'utilisation de Redis pour la gestion des sessions dans les applications Web, de la configuration de détail, des avantages tels que l'évolutivité et les performances et les mesures de sécurité.

Comment assurer Redis contre les vulnérabilités communes? Comment assurer Redis contre les vulnérabilités communes? Mar 17, 2025 pm 06:57 PM

L'article traite de la sécurisation Redis contre les vulnérabilités, en se concentrant sur des mots de passe forts, une liaison réseau, une désactivation des commandes, l'authentification, le chiffrement, les mises à jour et la surveillance.

See all articles