Maison  >  Questions et réponses  >  le corps du texte

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

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

ringa_leeringa_lee2762 Il y a quelques jours731

répondre à tous(3)je répondrai

  • 迷茫

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

    reids a DECR (décrément atomique), et memcache a également la fonction de décrémentation. La différence entre eux est que lorsque le décrément atomique de redis atteint 0, il deviendra un nombre négatif, tandis que celui de memcache sera toujours 0

    .

    répondre
    0
  • 高洛峰

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

    Non. Il deviendra -1, j'ai bien peur que vous deviez vous faire votre propre jugement.

    répondre
    0
  • 伊谢尔伦

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

    Solution de verrouillage optimiste

    Ne vérifiez pas le verrou, transmettez-le directement, mais vérifiez le numéro de version après l'avoir passé, ne fonctionne pas correctement, sinon annulez (nécessite la prise en charge des transactions)

    Un problème est que peut-être que les utilisateurs des commandes 2 et 3 ne l'ont pas obtenu, mais que les utilisateurs des commandes 4 et 5 l'ont obtenu (dans ce cas, vous le saurez clairement après avoir écrit une démo pour la tester)

    répondre
    0
  • Annulerrépondre