练习写一个博客 给用户一个收藏功能
每次用户 增加 /删除收藏夹内的文章 id 都会涉及到 redis 与 mysql 操作 显然被 cc 就会死 如何避免这种情况
限制请求速率并使用队列 那么任务多了后面用户操作会有延迟吧
或者使用队列仅操作 redis ,在一个用户停止活动 n 分钟后,读取 redis 中的数据,然后增删数据库(总感觉哪里不对劲)
还是有其他什么更好选择?
1
grance 2023-04-06 18:43:39 +08:00
起一个线程监测 redis 数据,定时写入 mysql ?
redis 存储的时候不同用户分开存储?避免锁竞争?单个用户操作加一下分布式锁? |
2
yinmin 2023-04-06 18:51:21 +08:00
正解是:
1. 增加 /删除业务逻辑不变; 2. 加一个用户 /IP 地址每小时操作的上限数,记录到 redis 里,如果超限就 deny 掉。 |
3
Puteulanus 2023-04-06 18:51:33 +08:00
前面上有 WAF 的 CDN ,专业的事让专业的来干?
|
4
ruanimal 2023-04-07 09:43:10 +08:00
CSRF 加限流咯
|