Matlab多目标人工蜂鸟算法MOAHA仿真包:含ZDT/DTLZ测试函数、Pareto前沿可视化与完整运行脚本
2026/6/3 16:20:44
noeviction:redis删除策略、淘汰策略
删除策略主要为:
淘汰策略主要有八种:
删除策略聚焦于到期键的主动/被动删除
被动清理到期键
纯理论的理想策略,redis并未采用。
不采用原因:redis核心是单线程,即使引入了IO多线程,主线程仍是单线程,定时器回调会阻塞。
主动清理到期键
redis实际采用 惰性删除 + 定期删除 的混合模式。
淘汰策略聚焦于内存达到上限时的键的淘汰。
maxmemory-policy noeviction进行配置补充说明:
maxmemory-samples参数进行配置,越大越接近严格LRU,但是CPU开销越大。volatiole-*策略中无过期键可以删除,则退化为noeviction策略(拒绝写操作)。maxmemory设置:默认为0,若不设置,redis不会触发淘汰机制,生产环境必须根据内存大小配置。noeviction:volatile-ttl:从设置了过期时间的KEY中,选择剩余时间最少的KEYvolatile-lru:从设置了过期时间的KEY中,选择最久未使用的KEYvolatile-lfu:从设置了过期时间的KEY中,选择使用频率最低的KEYvolatile-random:从设置了过期时间的KEY中,随机选择一个KEYallkeys-lru:从所有KEY中,选择最久未使用的KEYallkeys-lfu:从所有KEY中,选择使用频率最低的KEYallkeys-random:从所有KEY中,随机选择一个KEYmaxmemory:设置为内存上限的70%-80%,如内存16GB,设置maxmemory 12GBmaxmemory-samples:通用场景设置为10;高精度场景设置为20~30;CPU敏感场景设置为5。maxmemory-policy:maxmemory-policy allkeys-lru,优先保留最近使用的KEYmaxmemory-policy allkeys-lfu,优先保留访问最多的KEYmaxmemory-policy volatile-lru,只淘汰带过期时间的KEYmaxmemory-policy noeviction,拒绝写操作,需要配合集群/持久化+监控,内存满时需要人工扩容maxmemory-policy volatile-random,实现简单,CPU开销最低(仅适合非核心场景)hz:默认值为10,即一秒执行10次,100ms执行一次,主线程定时任务执行频率,影响定期删除过期键和淘汰机制的执行及时性。hz 20,设为20~50,提高定时任务频率。hz 100,通常不会将hz设置>100。dynamic-hz:默认为yes,开启。根据客户端连接数量自动调整后台任务执行频率,以配置的hz为基准动态调整。lfu-log-factor:默认值为10,值越低计数器增长速度越快。lfu-log-factor 5,设为1~5,高频键与低频键快速拉开差距。lfu-log-factor 10,保持默认。lfu-log-factor 20,计数器增长缓慢,避免偶尔访问的键被误判为高频。lfu-decay-time:默认值为1分钟,代表1分钟没有访问则衰减。lfu-decay-time 1,设为1~5,热点快速衰减,如直播弹幕。lfu-decay-time 60,设为10~60,高频键长期保留,如商品详情。