Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 34174|Répondre: 5

[.NET Core] .NET Core implémente l’analyse syntaxique distribuée du principe de verrou basée sur Redis

[Copié le lien]
Publié sur 22/09/2020 09:17:22 | | | |
Dans les scénarios d’affaires, les opérations simultanées de contenu, telles que l’inventaire de marchandises ou le même fichier, etc., ne sont pas autorisées, et l’application du programme est déployée sur plusieurs serveurs.
[Combat réel] ASP.NET Core est basé sur la vente flash de verrouillage distribuée Redis
https://www.itsvse.com/thread-9397-1-1.html

Le verrou distribué basé sur zk précédemment écrit est le suivant :

Implémentation du verrou distribué .net/c# Zookeeper [Code source]
https://www.itsvse.com/thread-4651-1-1.html

Ce que vous devez aussi savoir pour lire cet article :

Volatile vs. Interlocked vs. lock
https://www.itsvse.com/thread-5023-1-1.html

C# Calcul parallèle Parallèle.pour&Parallèle.Pour
https://www.itsvse.com/thread-3671-1-1.html

.NET Core implémente des verrous distribués basés sur RedisLe principe est d’appeler la commande SETNX de redis, si la clé existe déjà, la commande SETNX ne fait rien. La commande répond à 1 lorsque le réglage réussit et à 0 lorsqu’il échoue.

La connexion hyperlientérée est visible.

Créez un nouveau projet console .NET Core 3.1, ajoutez une référence StackExchange.Redis et utilisez la commande nuget comme suit :

Nous appelons la méthode StringSet de la bibliothèque, via le code source StackExchange.Redis ; nous pouvons voir que la méthode StringSet appellera la méthode privée GetStringSetMessage pour exécuter différentes commandes set via la valeur d’énumération de when , le code est le suivant :

Nous exécutons la commande SETNX 2000 fois via un appel de test parallèle au programme, qui s’exécute en 2 parties, durant lesquelles la validité du cache de la clé est de 5 secondes, c’est-à-dire que la clé sera automatiquement libérée après 5 secondes, c’est-à-dire que le verrou sera libéré.

Le code est le suivant :


Comme vous pouvez le voir, un total de 2 insertions réussies et 1998 tentatives ratées sont exactement ce à quoi nous nous attendions, et les rendus sont les suivants :


À ce jour, la serrure n’a pas encore été libérée.
(Fin)









Précédent:Je n’ai pas trouvé de solution de contournement pour une partie du chemin « \bin\roslyn\csc.exe »
Prochain:EF Core Series 2 encapsule OnModelCreating, crée des index à l’aide de réflexions, et plus encore
 Propriétaire| Publié sur 26/09/2020 15:37:52 |
test123
Publié sur 20/11/2020 11:18:31 |
S’il existe un environnement multithread et un environnement multi-instances lors du déploiement des conteneurs, y a-t-il un problème avec cette gestion ?
 Propriétaire| Publié sur 20/11/2020 11:29:44 |
qiuyueming Publié le 20-11-2020 11:18
S’il existe un environnement multithread et un environnement multi-instances lors du déploiement des conteneurs, y a-t-il un problème avec cette gestion ? ...

Multi-instance signifie multi-threading, et dans le code source, multi-threaded appelle redis, et un seul thread obtient un verrouillage
Publié sur 22/03/2022 14:32:40 |
Soutien, soutien
Publié sur 23/03/2022 11:15:30 |
Apprends que c’est bien @
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com