自己设计了一个兑换码算法:自增ID + Base32转码 + 按位加权签名 + 异或混淆,面试被追问细节时终于不用慌了之前写的博客都是围绕 Redis 数据结构做文章(Set 做点赞、BitMap 做签到、ZSet 做排行榜),这周终于换了一个方向——优惠券系统。最让我上头的是兑换码生成算法。以前觉得兑换码不就是个随机字符串嘛,直到真正面对需求才发现:要唯一、要可读、要防刷、要高效、还要能用 BitMap 验证兑换状态。五个要求凑在一起,现成的算法全都不够用,只能自己设计。整个过程像拼拼图,每一块单独看都不难,拼在一起的那一刻是真的有成就感。