采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
一哥,今天在一篇公众号上看到关于redis这样一个描述,不知道这个描述是否正确,如果正确的话,那么我们这里优惠券码的实现,如果要发比如10万张优惠券,该怎么设计呢
猪哥你好:
这个描述从理论上来说,肯定是正确的,不过,你需要结合场景去考虑这个问题。我先来说明为什么要控制集合类型中元素的个数,原因主要有以下的几点:
(1)这会产生 bigkey,在维护和迁移成本上太高,特别是集群模式的话,那么,会造成各台机器数据分布不均的问题
(2)查找数据的问题,过大的 key,查找数据往往耗时也会较长,特别是 list 类型,性能较差
那么,我们的优惠券如果有10万个,可以放在一个 key 里面吗?当然是可以的,我们只是保存一堆优惠券码,并依次吐出,这对性能没有任何影响。那么,如果就是按照这个理论,也很容易做这件事:
(1)10万个优惠券码分布到10个 set 中
(2)有个 set 的索引记录下来当前 set 的 key 名称
(3)获取优惠券码的时候,使用 lua 脚本从所有的 set 中尝试获取优惠券码即可
一哥牛逼!
登录后可查看更多问答,登录/注册
微服务,SpringCloud,SpringBoot面试、毕设、
861 6
1.0k 6
925 5
804 5
815 5