検索

ホームページ  >  に質問  >  本文

redis的key或者计数器有没有递减的功能?

比如现在想实现类似一个秒杀的功能,10个用户抢2个商品,redis或者memcache或者其它的nosql产品,有没有类似的功能,就是我有个计数器(库存,比如等于2)然后,开始抢商品的时候,前2个用户,已经将库存减到0了,当第3个人来抢的时候,计数器不会变为-1,而是还是为0,并且这个操作会返回一个操作失败,或者类似于mysql的返回影响行数为0的这种反馈信息,让我知道的?

ringa_leeringa_lee2799日前759

全員に返信(3)返信します

  • 迷茫

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

    reids には DECR (アトミック デクリメント) があり、memcache にもデクリメント機能があります。両者の違いは、redis のアトミック デクリメントは 0 になると負の数になるのに対し、memcache は常に 0 になることです。

    返事
    0
  • 高洛峰

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

    いいえ。 -1になりますが、ご自身で判断してください。

    返事
    0
  • 伊谢尔伦

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

    オプティミスティックロックソリューション

    ロックをチェックせず、直接渡しますが、渡した後にバージョン番号を確認し、正しく操作しないとロールバックします(トランザクションサポートが必要です)

    1 つの問題は、おそらく注文 2 と 3 のユーザーは理解できなかったが、注文 4 と 5 のユーザーは理解できたことです (この場合、デモを作成してテストするとわかります)

    返事
    0
  • キャンセル返事