Daha önce yazılmış zk tabanlı dağıtık kilit şöyledir:
Redis, dağıtık kilitleme ilkesini uygular:
Redis'te dağıtık kilitlerin uygulanmasının prensibi, redis'in SETNX komutunu çağırmaktır ve anahtar zaten mevcutsa, SETNX komutu hiçbir şey yapmaz. Komut, ayar başarılı olduğunda 1, ayar başarısız olduğunda ise 0 döner.
İlk olarak, web sitemiz 10.000 ürünü simüle eder, ardından satın alma işlemi tamamlanması 40 saniye süren HTTP isteği simüle eden bir konsol yazar, render şu şekildedir:
Core 3.1 ASP.NET yeni bir web sitesi oluşturun ve redis kilidi paketi şu şekildedir:
İnternette birçok serbest bırakma kilidinin şu şekilde yazıldığını gördüm:
Ancak, eşzamanlılık durumunda bir sorun olabileceği hissi var, karar anında true döndürülebilir, bu gerçekten kendi başına eklenen bir kilit, ancak kilit silindiğinde içinde olabilirAşırı durumlarda, kilit başka bir thread tarafından alındı, başkasının kilidi silinirse diye.
Bu nedenle, kilit elde ederken, kilidin son kullanma süresini uzatmak için bir iplik açmanız gerekir.
WeatherForecastController arayüzü aşağıdaki gibidir:
API web sitesini komut satırı üzerinden başlatabilirsiniz, bu satır, bu kolayca yeniden başlatılabilir, aşağıdaki gibi:
Snap satın almak için yeni bir .NET Core maket HTTP talebi oluşturun, kod şu şekildedir:
Eğer bir sorun varsa, düzelttiğiniz için teşekkürler.
Son olarak, kaynak kodunu ekleyin:
Turistler, bu gönderinin gizli içeriğini görmek isterseniz lütfen Yanıt
|