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

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

ringa_lee
ringa_lee

ringa_lee

Antworte allen(3)
迷茫

reids 有DECR(原子递减),memcache也有decrement功能,他们的区别是,redis的原子递减到0了会变为负数,而memcache的会一直为0

小葫芦

没有。会变成-1,恐怕你要自行判断了。

伊谢尔伦

乐观锁 解决

不检查锁 直接通过 但是通过后核对版本号 正确不操作 否则回滚(需要事物支持)

有个问题就是 可能2,3次序的用户没抢到 4,5次序的抢到了(这种情况你写一个demo测试一下就清楚了)

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!