• 请不要在回答技术问题时复制粘贴 AI 生成的内容
kristoforolilia
V2EX  ›  程序员

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

  •  
  •   kristoforolilia · Apr 6, 2023 · 1592 views
    This topic created in 1161 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

    4 replies    2023-04-07 09:43:10 +08:00
    grance
        1
    grance  
       Apr 6, 2023
    起一个线程监测 redis 数据,定时写入 mysql ?
    redis 存储的时候不同用户分开存储?避免锁竞争?单个用户操作加一下分布式锁?
    yinmin
        2
    yinmin  
       Apr 6, 2023
    正解是:
    1. 增加 /删除业务逻辑不变;
    2. 加一个用户 /IP 地址每小时操作的上限数,记录到 redis 里,如果超限就 deny 掉。
    Puteulanus
        3
    Puteulanus  
       Apr 6, 2023
    前面上有 WAF 的 CDN ,专业的事让专业的来干?
    ruanimal
        4
    ruanimal  
       Apr 7, 2023
    CSRF 加限流咯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1337 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 17:14 · PVG 01:14 · LAX 10:14 · JFK 13:14
    ♥ Do have faith in what you're doing.