redis的key或者计数器有没有递减的功能?
ringa_lee
ringa_lee 2017-04-21 11:17:22
0
3
754

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

ringa_lee
ringa_lee

ringa_lee

全員に返信(3)
迷茫

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

いいねを押す +0
小葫芦

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

いいねを押す +0
伊谢尔伦

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

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

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート