Redis 秒杀优化拾遗

条目索引

条目正文

消息队列

由于jvm提供的阻塞队列耗费内存且性能不行不能持久化,所以我们引入了redis的消息队列
49572f920449e405d36b079250f7803b1e5554f4

异步秒杀的思路

f39fb44c70cd00c25a5cef80699397bf01545320

由于秒杀业务要求高并发,但是数据库的性能太差,
所以我们用redis实现, 但是又因为要求业务的原子性,所以要在lua脚本中执行redis命令

758ae2c0dd6a81d9ab420cdbdd38dea83ef55be0

aeccd6100d73f5245070220666006f0055722a24

List实现

用数据结构list实现, 因此天然就是持久化的

33fa7344f89951ba347a0f64690f8f864ac93fb5

73086d9dae6a61e7fac02da8d541eba534770014

PubSub实现

00b3a8b69ecaf4525b92bc2e3e9dd70839f0ecb7

总结:支持多生产多消费, 但是缺点太多

de243395d504b9204d5a43ba25c11c1e457e5e6f

Stream

16dcf6fab15628d170e7119fee29704b92f9697c

74ec07846a68aa950d626f0d73c06cbed404c3e8

4223a6621afbb5d16e4d5a8641ffadcd696a5487

总结
90224c69f84571cbc2b373c3aaa0e5bd350bf80e