难题,一方面是在正常的系统设计中,其实很少考虑 Redis 崩溃之后应该如何解决,基本都是假设 Redis 是一个高可用的,几乎不会崩溃。另外一方面则是 Redis 是秒杀中的一个比较重要的环节,很多人从来没思考过万一 Redis 崩溃了怎么办。
这个问题的装逼方式有两个:一个是揭示出 Redis 承担的预扣库存这个步骤并不是必不可少的;另外一个则是揭示在秒杀的时候,可以引入随机过程来直接返回秒杀失败的响应。
秒杀架构:如何设计一个秒杀系统? - 面试ICU (mianshi.icu)
Redis 在秒杀系统中承担的是预扣库存的责任,而且它取到的是一个获取资格的作用,那么基本上你就可以猜到,要说它重要吧,确实很重要。要说它不重要吧,其实也没那么重要。
要注意一点,有些人会在这个问题下狡辩说自己部署的是集群,不会崩溃,又或者狡辩自己部署的是主从结构,也不会崩溃。这都不是面试官想要听到的话,毕竟这年头谁家使用 Redis 不是实施了高可用方案呢?