原文:借助Redis做秒杀和限流的思考

最近群里聊起秒杀和限流,我自己没有做过类似应用,但是工作中遇到过更大的数据和并发。 于是提出了一个简单的模型: var count rds.inc key if count gt throw 已抢光 借助Redis单线程模型,它的inc是安全的,确保每次加一,然后返回加一后的结果。如果原来是 ,加一了就是 ,返回的一定是 ,在此中间,不会有别的请求来打断从而导致返回 或者其它。 其实我们可以理解为 ...

2018-01-17 12:33 36 10431 推荐指数:

查看详情

抢购秒杀的业务逻辑 redis实现 nginx限流算法

1.秒杀的业务逻辑 秒杀会出现高并发的情况,关系型数据库并发能力较弱,高并发会导致数据库崩溃 使用非关系型数据库 在网关这一块,使用nginx进行负载均衡,保证访问可以被消化,在应用服务器端使用tomcat集群,唯一有问题的是在数据库这一端 抢购秒杀(限时特惠) 高并发 ...

Sat Nov 06 20:58:00 CST 2021 0 99
集成RabbitMQ秒杀

由于秒杀的并发量太大,所以仅仅使用缓存是不够的,还需要用到RabbitMQ。 这里推荐一款用于分库分表的中间件:mycat 解决超卖的问题(看第五章节): 秒杀接口优化: 实操: 然后把下载好的文件上传到服务器上: 验证 ...

Tue Mar 13 23:32:00 CST 2018 0 4305
Sentinel 是如何限流

限流是保障服务高可用的方式之一,尤其是在微服务架构中,对接口或资源进行限流可以有效地保障服务的可用性和稳定性。 之前的项目中使用的限流措施主要是Guava的RateLimiter。RateLimiter是基于令牌桶流控算法,使用非常简单,但是功能相对比较少。 而现在,我们有了一种新的选择,阿里 ...

Tue Dec 15 18:35:00 CST 2020 0 924
Redis限流——滑动窗口限流

滑动窗口算法 指定时间T内,只允许发生N次。我们可以将这个指定时间T,看成一个滑动时间窗口(定宽)。 我们 采用Redis的zset基本数据类型的score来圈出这个滑动时间窗口。在实际操作zset的过程中,我们只需要保留在这个滑动时间窗口以内的数据,其他的数据 ...

Tue Nov 16 03:38:00 CST 2021 0 3363
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM