Keatomisasian operasi memastikan bahawa operasi tidak boleh dibahagikan lagi, dan ia sama ada dilaksanakan sepenuhnya atau tidak dilaksanakan sepenuhnya.
Anda perlu mempelajari prinsip atom sistem pengendalian. Masanya agak lama dan mungkin tidak tepat Biar saya berikan contoh biasa yang tidak ada kena mengena dengan Redis.
Terdapat pembolehubah A=10, saya ingin menambah 5 padanya. Kemudian operasi "tambah 5" saya dibahagikan kepada beberapa langkah:
Baca A
Baca hasil +5
Hasilnya ditulis kembali ke A
Ada orang lain yang ingin menambah 3 padanya Dia tidak tahu bahawa saya juga mahu mengendalikan operasi "tambah 3"nya perlu dibahagikan kepada beberapa langkah:
Baca A
Baca hasil +3
Hasilnya ditulis kembali ke A
Jika operasi kami ("tambah 3" dan "tambah 5") bukan atom, arahan antara satu sama lain akan disusun secara rawak, dan hasilnya tidak dapat diramalkan Mungkin dia menyelesaikan tulis balik +3 terlebih dahulu Masa itu sudah 13, jadi kami mendapat keputusan yang betul iaitu +3 dan kemudian +5. Kemungkinan juga dia tidak menulis balik semasa operasi +3 saya membaca 10, jadi apabila menulis kembali, mungkin 13 atau 15.
Jika operasi kami adalah atom, kami boleh memastikan bahawa saya tidak boleh memasukkannya apabila dia melakukan langkah menambah 3. Saya hanya boleh memulakan operasi saya selepas dia menyelesaikan operasi, sekali gus memastikan data itu boleh dipercayai.
Keatomisasian operasi memastikan bahawa operasi tidak boleh dibahagikan lagi, dan ia sama ada dilaksanakan sepenuhnya atau tidak dilaksanakan sepenuhnya.
Anda perlu mempelajari prinsip atom sistem pengendalian. Masanya agak lama dan mungkin tidak tepat Biar saya berikan contoh biasa yang tidak ada kena mengena dengan Redis.
Terdapat pembolehubah A=10, saya ingin menambah 5 padanya. Kemudian operasi "tambah 5" saya dibahagikan kepada beberapa langkah:
Ada orang lain yang ingin menambah 3 padanya Dia tidak tahu bahawa saya juga mahu mengendalikan operasi "tambah 3"nya perlu dibahagikan kepada beberapa langkah:
Jika operasi kami ("tambah 3" dan "tambah 5") bukan atom, arahan antara satu sama lain akan disusun secara rawak, dan hasilnya tidak dapat diramalkan Mungkin dia menyelesaikan tulis balik +3 terlebih dahulu Masa itu sudah 13, jadi kami mendapat keputusan yang betul iaitu +3 dan kemudian +5. Kemungkinan juga dia tidak menulis balik semasa operasi +3 saya membaca 10, jadi apabila menulis kembali, mungkin 13 atau 15.
Jika operasi kami adalah atom, kami boleh memastikan bahawa saya tidak boleh memasukkannya apabila dia melakukan langkah menambah 3. Saya hanya boleh memulakan operasi saya selepas dia menyelesaikan operasi, sekali gus memastikan data itu boleh dipercayai.
Sama seperti transaksi pangkalan data, satu set operasi sama ada berjaya atau tidak dilaksanakan sama sekali
Jika anda mahu melakukannya, lakukan semuanya; jika anda tidak mahu melakukannya, jangan lakukan sama sekali