Walson Blog

高并发优惠券系统设计与防超卖方案:从理论到实战

前言

在Yato跨境电商平台的优惠券模块开发中,我们面临了一个经典的高并发问题:如何在保证数据一致性的前提下,支撑万级QPS的优惠券发放?

本文将详细记录我设计的优惠券系统架构,以及如何通过Redis预扣减、分布式锁、Lua脚本等技术手段解决超卖超领问题。

我给自己的 100 条生活原则

这是一份我会长期执行、并不断修订的生活原则清单。很多道理并不新,但只要长期做到,生活质量会出现明显差异。


一、物品(Possessions)

  1. 当我想看某个产品的真实评价时,我会优先搜“产品名 + reddit”,因为真实用户争论通常比 SEO 页面更有信息量。
  2. 我会定期检查自己的银行账户费用;如果一个账户每月收费,我必须说得清它带来的具体价值。
  3. 对于床、椅子、显示器这类高频接触物品,我会优先买质量更好的版本,因为它们每天都在影响我的状态。
  4. 如果我总在找“那把好刀/那个好工具”,我就会把不好用的同类物品清掉,避免低质量选项干扰日常。
  5. 只要工作高度依赖电脑,我就会配置双屏,让注意力更多放在思考而不是窗口切换。
  6. 我会先定义“什么东西该扔”的规则,再做清理;有规则的清理一定比拖延式囤积更有效。
  7. 给别人送音乐礼物时,我会优先考虑他们喜欢乐队的周边,而不是 CD,这更实用也更有支持意义。
  8. 买东西前我会先判断自己当前更缺时间还是更缺钱:缺钱就慢慢比价,缺时间就快速决策。

二、烹饪(Cooking)

  1. 我泡茶会用固定时间:绿茶约 3 分钟、红茶约 4 分钟、花草茶约 5 分钟,先把基本动作做稳定。
  2. 我会通过每周一次集中备餐,兼顾“便宜、健康、好吃、快”,而不是每天临时决定吃什么。
  3. 我知道烹饪会让室内空气变差,所以做完饭我会开窗通风几分钟。
  4. 我会用香草和香料提升风味,而不是一味追求复杂菜谱,把做饭变成可持续的表达。
  5. 我搜索菜谱时会加入“best”这类关键词,提高一次命中靠谱版本的概率。

三、效率(Productivity)

  1. 我会使用高级检索语法(如排除词)缩小搜索噪声,让每次搜索结果更精准。
  2. 只要我发现某个电脑操作重复到“机器也能做”,我就会考虑脚本化或自动化。
  3. 我会主动学习并持续使用快捷键,因为它们几乎是零成本的长期效率杠杆。
  4. 我坚持“先完成,再优化”:没有交付就没有反馈,没有反馈就没有真正进步。
  5. 我会保持工作台面简洁,把每个无关物品都视作对注意力的占用。
  6. 每完成一项挑战后,我会给自己明确正反馈,即使完成得不完美。

四、身体(Body)

  1. 我执行 20-20-20 规则:每 20 分钟看屏幕后,望向远处约 20 秒,减少眼睛疲劳。
  2. 我把力量训练视为长期健康投入,因为它不仅增肌,也有助于骨骼与体态。
  3. 我认可“少量持续运动”远好于“偶尔暴冲”,哪怕每周只开始 15 分钟也算有效起点。
  4. (非医疗建议)我不会迷信复合维生素万能论;需要补充时,我会优先基于检测和医生建议。
  5. 我会减少长时间手持重手机带来的腕部负担,能用电脑就用电脑,不能就把手机支起来。

五、成功(Success)

  1. 我会优先把作品发布到真实世界,再用迭代提升质量,而不是无限延迟在“快完美了”。
  2. 当我长期在“要不要离开某段关系/工作”上犹豫不决时,我会认真考虑行动本身可能是答案。
  3. 我相信纪律比动力更可靠:动力靠情绪,纪律靠系统。
  4. 我会持续训练表达能力,因为清晰沟通往往比“自己知道但说不清”更有竞争力。
  5. 我会给关键决策设置“自我预警机制”,不等问题爆炸才反应。
  6. 我会警惕幸存者偏差:成功者的方法值得参考,但不等于放之四海皆准。
  7. 我会主动向真正了解我的人寻求建议,而不是只依赖泛化鸡汤。
  8. 我会把“开始”设计到足够简单:先让动作发生,再追求规模和强度。
  9. 我会长期维护“靠谱”这件事,因为可预期的稳定表现本身就是稀缺价值。
  10. 我提醒自己:我如何度过今天,基本就决定了我如何度过这一生。

六、理性(Rationality)

  1. 我会优先识别自己的认知偏差,因为改自己比批评别人更有回报。
  2. 我遇到复杂问题时会尝试讲给别人听,很多时候在解释过程中我就能看见解法。
  3. 我不会因为一个人愚蠢就自动否定他说的每句话;观点仍需就事论事。
  4. 我做计划时会先做“失败预演”:假设未来已失败,再倒推最可能崩掉的环节并提前修复。
  5. 同样的意外如果反复发生,我不会再把它当意外,而会把它纳入模型。
  6. 面对健康恐慌信息时,我会先查基准概率,再判断风险,而不是只盯最坏案例。
  7. 收到建议时,我会同时检查反向建议是否更适合我当前阶段。
  8. 我提醒自己:常见系统是为普通人设计的,生活技能多数都能学会,不必先自我否定。

七、自我(Self)

  1. 我不会把生活能力缺失浪漫化;不会做饭、不会整理、不会自理,在长期关系里就是风险信号。
  2. 我会持续做“自我澄清”:我真正想要什么、怕什么、在乎什么。
  3. 只要我还有行动能力,我就会鼓励自己多尝试新事物。
  4. 我承认“不是我的错”与“需要我负责”可以同时成立。
  5. 我不会把“受过伤”当作永久身份标签;标签越牢,变化越难发生。
  6. 我会控制身份认同的边界,不让“我不是这种人”阻断本可以尝试的成长路径。
  7. 我会区分“我真心喜欢做”与“我只是想被看成会做这件事的人”。
  8. 我会经常提醒自己生命有限,把时间给真正重要的事。
  9. 我承认有些事件本身就会伤人,不会把所有痛苦都归结为“我不够坚强”。
  10. 想提高幽默感时,我会在安全社交环境里增加试错,让表达更松弛。
  11. 我会用“如果我说自己一切都好,会冒出哪些反驳?”来定位真实问题。
  12. 我会把拖延反过来用于坏冲动:把冲动行为推迟,再推迟,给理性留窗口。
  13. 我不会迷信顿悟;每次顿悟后我都要求自己立刻配一条可执行动作。
  14. 我会优先修复睡眠、社交、运动这些基础项,因为很多“意义危机”会随之缓解。

八、风险(Hazards)

  1. 我识别危险关系时会重点看两个信号:持续的受害者叙事和稳定的愤怒表达。
  2. 对习惯性制造戏剧冲突的人,我会主动保持距离。
  3. 对“先让我焦虑,再卖我解决方案”的叙事,我会默认高度警惕。
  4. (非法律建议)涉及执法沟通时,我会优先确保程序与法律支持,不做情绪化多余发言。
  5. 我判断一个人时会看行动一致性,而不是只听他的价值观表达。
  6. 我会谨记:我今天为恶意找的借口,明天可能回到我自己身上。

九、他人(Others)

  1. 当合租人数超过 2 人时,我会提前把责任边界写清楚,否则琐事成本会急剧上升。
  2. 我接受别人有权拥有与我不同甚至我不喜欢的品味。
  3. 我不会为了维持“形象”而压制真实思考,哪怕短期会损失一点社交舒适感。
  4. 我会主动加入小群体协作,因为长期稳定的共同体会显著改善生活质量。
  5. 我避免通过操控让别人“更喜欢我但更不尊重我”,这种关系不可持续。
  6. 我会尝试解释“我为什么喜欢某个作品”,训练自己跨圈层沟通的能力。
  7. 与其问别人“你最喜欢什么”,我更愿意问“你最近在享受什么”,对话更自然。
  8. 我提醒自己:长期无聊会反过来塑造无聊的自己。
  9. 我会尽量维护无屏幕共餐场景,让家庭或同住关系保留真实交流。
  10. 跨城出行时,我会把拼车作为选项之一,综合比较时间、成本和体验。

十、关系(Relationships)

  1. 我选择长期关系时,会看我们是否能在“什么都不做”时依然相处舒适。
  2. 我不会因为某件事“持续很久”就认定它正确,持续性不等于合理性。
  3. 我不会在同事圈或公开平台消耗伴侣形象,这会直接侵蚀关系信任。
  4. 关系结束后,我会尽快减少联系,先做情绪恢复,再谈是否可能做朋友。
  5. 我不会给亲密探索设僵硬截止线,也不会接受他人拿“时间压力”操控我。
  6. 约会尴尬时,我会尝试更真实地表达,而不是机械维持体面。
  7. 我不再过度隐藏个性;长期关系要的是匹配,不是“谁都觉得我还行”。
  8. 我会主动给关系设计新鲜体验,避免关系只靠惯性维持。
  9. 我接受“彼此都不坏但不合适”的现实,不把一切都解释为道德问题。

十一、同理心(Compassion)

  1. 我想到父母就会联系他们,想对朋友表达爱就直接说。
  2. 我会更主动地给出真诚夸奖,帮助身边人建立更稳定的自我评价。
  3. 当有人被群体围攻时,我不会为了站队快感再补一刀。
  4. 对处理复杂流程吃力的人,我会先给帮助而不是先给嘲讽。
  5. 我会对“难沟通的人”保留耐心,因为沟通本来就是高难度行为。
  6. 我不会惩罚“愿意尝试的人”,包括抱怨他做得慢、做得差、做得不如别人。
  7. 我会记住很多痛苦不可见,尤其是羞耻感相关的痛苦。
  8. 当别人承认自己错了,我会优先鼓励纠正,而不是惩罚坦诚。
  9. 我知道自己会本能地给“不善良”找理由,所以我会刻意练习克制。

十二、快乐(Joy)

  1. 我把运动、睡眠、光照、接触自然当作情绪管理的基础设施,而不是可有可无的加分项。
  2. 我不会把大量精力耗在自己几乎无法影响的宏大议题上,我更重视可落地的建设行动。
  3. 我会默认“任何领域大部分内容都一般”,然后主动寻找真正优秀的那部分。
  4. 我不强迫自己“必须热爱工作”,我更重视工作是否支持我过想要的生活。
  5. 我警惕会削弱快乐的“过度品味训练”,不让鉴赏能力变成持续挑剔。
  6. 我允许自己在该难过时难过、在该开心时开心,不用和别人比较来取消自己的情绪。
  7. 我会区分“我想要”与“我喜欢”:对真正喜欢但暂时没动力的事,我会主动推自己一把。
  8. 做居住决策时,我会严肃计算通勤成本,因为长期通勤会吞噬精力和幸福感。
  9. 即使我是偏内向的人,我也会周期性推动自己增加社交暴露,通常对状态有正向帮助。
  10. 我会主动记录那些缓慢发生的好变化,避免被高强度坏消息塑造成悲观世界观。

这 100 条不是一次性完成的任务,而是我会反复对照、长期执行的生活系统。