Rumah > Soal Jawab > teks badan
比如现在想实现类似一个秒杀的功能,10个用户抢2个商品,redis或者memcache或者其它的nosql产品,有没有类似的功能,就是我有个计数器(库存,比如等于2)然后,开始抢商品的时候,前2个用户,已经将库存减到0了,当第3个人来抢的时候,计数器不会变为-1,而是还是为0,并且这个操作会返回一个操作失败,或者类似于mysql的返回影响行数为0的这种反馈信息,让我知道的?
迷茫2017-04-21 11:19:22
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
.高洛峰2017-04-21 11:19:22
Tidak. Ia akan menjadi -1, saya takut anda perlu membuat pertimbangan anda sendiri.
伊谢尔伦2017-04-21 11:19:22
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)