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

Redis 定期删除过期键的频率如何设定最优?

  •  
  •   1oNflow · 2019-12-15 14:57:13 +08:00 · 3918 次点击
    这是一个创建于 1816 天前的主题,其中的信息可能已经有所发展或是发生改变。

    默认是每秒 10 次,如何根据服务器性能,业务情况来设置一个比较合适的频率,只能尝试不同值然后看结果吗,有没有可量化的解决方案?

    9 条回复    2019-12-16 15:39:01 +08:00
    cedoo22
        1
    cedoo22  
       2019-12-15 15:01:10 +08:00
    不应该是事件触发吗?
    phantomzz
        2
    phantomzz  
       2019-12-15 15:45:04 +08:00
    Redis 不是有惰性删除吗?
    crclz
        3
    crclz  
       2019-12-15 18:00:16 +08:00
    如果怕存在不一致,那么就将过期时间设定为最大能容忍的不一致窗口的时间。
    keakon
        4
    keakon  
       2019-12-15 22:36:15 +08:00
    不可量化。这是一个静态的配置,你存储的带过期时间的数据是动态变化的,这相当于用一个一元方程拟合随机序列。
    Leigg
        5
    Leigg  
       2019-12-16 10:20:11 +08:00 via iPhone
    为什么会有这种想法,认为 redis 默认方案不够优?目前的定时加惰性删除已经是优化过的方案了。
    Leigg
        6
    Leigg  
       2019-12-16 10:25:25 +08:00 via iPhone
    为什么会有这种想法,认为 redis 默认方案不够优?目前的定时加惰性删除已经是优化过的方案了。过分提高频率不如加内存,提高频率会增加 cpu 消耗
    Raymon111111
        7
    Raymon111111  
       2019-12-16 11:10:59 +08:00
    你先说当前配置下遇到啥问题了吧
    gaius
        8
    gaius  
       2019-12-16 13:55:47 +08:00
    你要 size ?
    1oNflow
        9
    1oNflow  
    OP
       2019-12-16 15:39:01 +08:00 via iPhone
    @phantomzz 惰性和定期都存在吧,如果只有惰性会有很多没有再被访问过的过期键占用内存
    @keakon 我其实也觉得这个东西没法算出来,可能只能靠经验
    @Leigg
    @Raymon111111
    并不是觉得不好,或是遇到问题,是因为面试时被要求设计一个支持 ttl 的 redis,那就会遇到如何定期删除的问题,这个频率确定的依据实在不清楚,只能说去尝试看效果,所以想知道这种参数,阈值的设定有什么方法可循。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1045 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 19:34 · PVG 03:34 · LAX 11:34 · JFK 14:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.