问答详情
源自:3-2 Redis队列秒杀实现

关于redis回滚的问题

看了这个redis的视频,有一点困惑,就是在数据库插入失败时候的回滚机制,视频中采用rPush的方式,将$uid重新插入到redis的末尾,这里不应该是lPush吗?因为是从redis的左侧取出数据的,按道理应该也是左侧插入回数据吧?希望懂的同学解答一下,谢谢!

提问者:慕斯1122527 2018-05-30 14:30

个回答

  • qq_欧尼酱_3
    2018-05-31 10:30:03
    已采纳

    我也这么想的,肯定是他写错了,口里说的插入左边,写的RPUSH插入右边。。。

  • 翠竹凝梦
    2018-10-08 10:53:43

    作者的队列是从右边插入左边取出,如果从左边取出的数据插入数据库失败,再从左侧插入,那么下次再取的又是这个数据,如果上次插入是由于数据本身导致的失败,那么下次的插入还是失败,这样就导致在左侧取一个有问题的数据又从左侧放回去一直循环下去,那么队列后头的数据没法读取处理了,在操作系统中这种情况也叫活锁

  • 慕UI5486170
    2018-08-28 17:43:30

    到底是讲错了 还是插错了