比如現(xiàn)在想實(shí)現(xiàn)類似一個(gè)秒殺的功能,10個(gè)用戶搶2個(gè)商品,redis或者memcache或者其它的nosql產(chǎn)品,有沒有類似的功能,就是我有個(gè)計(jì)數(shù)器(庫存,比如等于2)然后,開始搶商品的時(shí)候,前2個(gè)用戶,已經(jīng)將庫存減到0了,當(dāng)?shù)?個(gè)人來搶的時(shí)候,計(jì)數(shù)器不會(huì)變?yōu)?1,而是還是為0,并且這個(gè)操作會(huì)返回一個(gè)操作失敗,或者類似于mysql的返回影響行數(shù)為0的這種反饋信息,讓我知道的?
ringa_lee
reids mempunyai DECR (penyusutan atom), dan memcache juga mempunyai fungsi penyusutan Perbezaan antaranya ialah apabila penyusutan atom redis mencapai 0, ia akan menjadi nombor negatif, manakala memcache akan sentiasa menjadi 0
.Tidak. Ia akan menjadi -1, saya takut anda perlu membuat pertimbangan anda sendiri.
Penyelesaian kunci yang optimistik
Jangan periksa kunci, hantar terus, tetapi periksa nombor versi selepas melepasinya, jangan beroperasi dengan betul, jika tidak, gulung semula (memerlukan sokongan transaksi)
Satu masalah ialah mungkin pengguna dalam pesanan 2 dan 3 tidak mendapatnya, tetapi pengguna dalam urutan 4 dan 5 mendapatnya (dalam kes ini, anda akan tahu dengan jelas selepas menulis demo untuk mengujinya)