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

 你走之后你的美我如何收拾_686 发布于 2022-10-27 15:42

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

3 个回答
  • 乐观锁 解决

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

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

    2022-11-12 01:41 回答
  • 没有。会变成-1,恐怕你要自行判断了。

    2022-11-12 01:41 回答
  • reids 有DECR(原子递减),memcache也有decrement功能,他们的区别是,redis的原子递减到0了会变为负数,而memcache的会一直为0

    2022-11-12 01:41 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有