搜尋

首頁  >  問答  >  主體

redis的key或是計數器有沒有遞減的功能?

比如現在想實現類似一個秒殺的功能,10個用戶搶2個商品,redis或者memcache或者其它的nosql產品,有沒有類似的功能,就是我有個計數器(庫存,比如等於2)然後,開始搶商品的時候,前2個用戶,已經將庫存減到0了,當第3個人來搶的時候,計數器不會變為-1,而是還是為0,並且這個操作會返回一個操作失敗,或者類似於mysql的返回影響行數為0的這種反饋信息,讓我知道的?

ringa_leeringa_lee2847 天前778

全部回覆(3)我來回復

  • 迷茫

    迷茫2017-04-21 11:19:22

    reids 有DECR(原子遞減),memcache也有decrement功能,他們的區別是,redis的原子遞減到0了會變成負數,而memcache的會一直為0

    回覆
    0
  • 高洛峰

    高洛峰2017-04-21 11:19:22

    沒有。會變成-1,恐怕你要自行判斷了。

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-21 11:19:22

    樂觀鎖 解決

    不檢查鎖 直接通過 但是通過後核對版本號 正確不操作 否則回滾(需要事物支援)

    有個問題就是 可能2,3次序的用戶沒搶到 4,5次序的搶到了(這種情況你寫一個demo測試一下就清楚了)

    回覆
    0
  • 取消回覆