V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kristoforolilia
V2EX  ›  程序员

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

  •  
  •   kristoforolilia · 2023-04-06 17:35:05 +08:00 · 1046 次点击
    这是一个创建于 392 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    4 条回复    2023-04-07 09:43:10 +08:00
    grance
        1
    grance  
       2023-04-06 18:43:39 +08:00
    起一个线程监测 redis 数据,定时写入 mysql ?
    redis 存储的时候不同用户分开存储?避免锁竞争?单个用户操作加一下分布式锁?
    yinmin
        2
    yinmin  
       2023-04-06 18:51:21 +08:00
    正解是:
    1. 增加 /删除业务逻辑不变;
    2. 加一个用户 /IP 地址每小时操作的上限数,记录到 redis 里,如果超限就 deny 掉。
    Puteulanus
        3
    Puteulanus  
       2023-04-06 18:51:33 +08:00
    前面上有 WAF 的 CDN ,专业的事让专业的来干?
    ruanimal
        4
    ruanimal  
       2023-04-07 09:43:10 +08:00
    CSRF 加限流咯
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   832 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:38 · PVG 03:38 · LAX 12:38 · JFK 15:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.