请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于优惠券码数量的问题

图片描述
一哥,今天在一篇公众号上看到关于redis这样一个描述,不知道这个描述是否正确,如果正确的话,那么我们这里优惠券码的实现,如果要发比如10万张优惠券,该怎么设计呢

正在回答

1回答

猪哥你好:

    这个描述从理论上来说,肯定是正确的,不过,你需要结合场景去考虑这个问题。我先来说明为什么要控制集合类型中元素的个数,原因主要有以下的几点:

    (1)这会产生 bigkey,在维护和迁移成本上太高,特别是集群模式的话,那么,会造成各台机器数据分布不均的问题

    (2)查找数据的问题,过大的 key,查找数据往往耗时也会较长,特别是 list 类型,性能较差

    那么,我们的优惠券如果有10万个,可以放在一个 key 里面吗?当然是可以的,我们只是保存一堆优惠券码,并依次吐出,这对性能没有任何影响。那么,如果就是按照这个理论,也很容易做这件事:

    (1)10万个优惠券码分布到10个 set 中

    (2)有个 set 的索引记录下来当前 set 的 key 名称

    (3)获取优惠券码的时候,使用 lua 脚本从所有的 set 中尝试获取优惠券码即可

3 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信