小白请教用户收藏夹功能 该怎么设计不会被 c 死

2023-04-06 17:35:05 +08:00
 kristoforolilia

练习写一个博客 给用户一个收藏功能

每次用户 增加 /删除收藏夹内的文章 id 都会涉及到 redis 与 mysql 操作 显然被 cc 就会死 如何避免这种情况

限制请求速率并使用队列 那么任务多了后面用户操作会有延迟吧

或者使用队列仅操作 redis ,在一个用户停止活动 n 分钟后,读取 redis 中的数据,然后增删数据库(总感觉哪里不对劲)

还是有其他什么更好选择?

1135 次点击
所在节点    程序员
4 条回复
grance
2023-04-06 18:43:39 +08:00
起一个线程监测 redis 数据,定时写入 mysql ?
redis 存储的时候不同用户分开存储?避免锁竞争?单个用户操作加一下分布式锁?
yinmin
2023-04-06 18:51:21 +08:00
正解是:
1. 增加 /删除业务逻辑不变;
2. 加一个用户 /IP 地址每小时操作的上限数,记录到 redis 里,如果超限就 deny 掉。
Puteulanus
2023-04-06 18:51:33 +08:00
前面上有 WAF 的 CDN ,专业的事让专业的来干?
ruanimal
2023-04-07 09:43:10 +08:00
CSRF 加限流咯

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/930334

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX