不使用redis ,如何实现万级并发的秒杀活动呢?

不使用redis ,如何实现万级并发的秒杀活动呢?面试话题紫薯布丁

你以为的秒杀是看点击先后顺序排列取前n个
但是实际上大可不必,甚至从商业的角度来说,应该保证每个地区都能“雨露均沾”(类似高考分省录取)才是更好的
所以,你的思路就可以打开了吧

那就自己使用一个redis,redis另一个好处是可以横向扩展节点,只是一个节点本地内存就行了

其实就是锁的概念, 防止并发超卖,你不用redis去实现那就用别的锁或者方案,redis分布式锁是目前使用最广泛的,方案也是最完善的。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7789255
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:假如把Redis服务器们拉到一个群,看看他们是怎么工作的?
  • 除此之外, 这篇博客: Redis 的内存淘汰机制,看这篇就够了。中的 如何处理被淘汰的数据 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

    一般来说,一旦被淘汰的数据选定后,如果这个数据是干净的,那么我们就直接删除;如果这个数据是脏数据,我们需要把它写回数据库。

    干净数据和脏数据的区别就在于,和最初从后端数据库里读取时的值相比,有没有被修改过。
    干净数据一直没有被修改,所以后端数据库里的数据也是最新值。在替换时,它可以被直接删除。而脏数据则相反。

    但是,对于 Redis 来说,它决定了被淘汰的数据后,会把它们直接删除。即使淘汰的数据是脏数据,Redis 也不会把它们写回数据库。

    所以,我们在使用 Redis 缓存时,如果数据被修改了,需要在数据修改时就将它写回数据库。
    否则,这个脏数据被淘汰时,会被 Redis 删除,而数据库里也没有最新的数据了。

    分析完 LRU 我们继续分析 LFU算法。在这之前先了解一个问题:缓存污染

  • 您还可以看一下 朱学超老师的Redis高并发秒杀和分布式锁技术应用及实战解析课程中的 Redis实现分布式锁小节, 巩固相关知识点

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

万级并发的秒杀,那服务器的集群是肯定要配置的,配置集群后,我们可以依据ip进行分发,不同地区的ip进入不同的集群服务器,然后对服务器进行本地缓存,同时做个队列,保证进入到当前服务器的请求都是按照先进先出的规则来的,如果还不行,那就地区继续细化,多几台集群服务而已