“栈子”叛逆记:凭啥后进先出的你要去干排队?”——用栈实现队列的底层哲学
作者:Echo_Wish
🥁 引子:一个“逻辑叛逆者”的故事
大家有没有遇到这种尴尬:
设计一个服务,用了 Redis 做队列,结果因为顺序处理撑不住 TPS;
你想着换方案,结果中台说:
“你别动队列,咱架构不大好改。”
问题来了:
如果底层就是一个 LIFO 结构(栈),能不能模拟 FIFO(队列)?
听起来像是让一个“后进先出”的叛逆少年,硬生生变成“排队按顺序”的文明市民。
但这事还真能做到,而且挺有哲学味儿:
你不需要改变世界,你只需要构建中间结构,让世界按你想要的方式运转。
这句话送给所有做系统架构的人。
🧠 原理讲解:用栈模拟队列的真心话
队列强调:
- 先入先出(FIFO)
push -> pop <-
栈强调:
- 后进先出(LIFO)
push <- pop
听起来完全对不上?