Skenario aplikasi kunci terdistribusi: Dengan perkembangan layanan, aplikasi tunggal menjadi kluster, kunci terdistribusi memecahkan pengoperasian proses yang berbeda (utas) pada sumber daya yang sama dalam situasi bersamaan, dan beberapa layanan harus memerlukan satu utas untuk beroperasi, misalnya: perubahan jumlah deposit, perubahan inventaris komoditas, dll.
Resensi:
Dalam artikel sebelumnya "[Praktek]ASP.NET Inti Berdasarkan Redis Distributed Lock Flash Kill", ketika kami menambahkan kunci, kami juga mengaktifkan utas latar belakang untuk memperpanjang waktu penguncian, untuk memastikan bahwa ketika kunci dilepaskan, kunci yang ditempati oleh utas lain tidak akan dihapus secara keliru.
Setelah mempelajari Redis menggunakan skrip Lua, Anda dapat dengan mudah menggunakan skrip untuk menyelesaikan kunci hunian dan melepaskan kunci.
Pertama, mari kita lihat renderingnya sebagai berikut:
Kami pertama kali membuka 1000 utas paralel untuk bersaing memperebutkan kunci, dan kunci kedaluwarsa selama 5 detik.Kami menyelesaikan 1000 utas dalam 5 detik, dan hanya 1 utas yang berhasil memperoleh kunciSetelah menunggu selama 6 detik, kunci akan dilepaskan secara otomatis, dan Anda dapat melihat bahwa tugas kedua telah berhasil mendapatkan kunci, dan segera melepaskan kunci, dan kode berikutnya telah berhasil mendapatkan kunci.
Skrip lua untuk mendapatkan kunci adalah sebagai berikut:
Skrip lua untuk melepaskan kunci adalah sebagai berikut:
Kode antarmuka:
Unduhan kode sumber:Login hyperlink terlihat.
Modifikasi "[Latihan] ASP.NET Inti berdasarkan penjualan flash kunci terdistribusi Redis" diimplementasikan menggunakan artikel ini, dan situs web kami mensimulasikannya10000 item, lalu menulis konsol untuk mensimulasikan waktu permintaan HTTPTerjual habis selesai dalam 6 detik, seperti yang ditunjukkan pada gambar di bawah ini:
Ubah kode permintaan simulasi pengujian:
(Akhir)
|