过期键删除策略

1.定时删除:在设置键的过期时间的同时,创建一个定时器timer,让定时器在键过期时间来临时,立即执行对键的删除操作。

2.惰性删除:放任键过期不管,但是每次从键空间中获取键时,都检查取得的键是否过期,如果过期的话,就删除该键;如果没有过期,就返回改建。

3.定期删除:每隔一段时间程序就对数据库进行一次检查,删除里面的过期键,至于要删除多少过期键,以及要检查多少个数据库,则有算法决定。

Redis服务器使用的是惰性删除策略和定期删除策略。

六种淘汰策略

  • noeviction: 不删除策略,达到最大内存限制时,如果需要更多内存,直接返回错误信息。

  • allkeys-lru: 所有key通用;优先删除最近最少使用(less recently used,LRU)的key。

  • volatile-lru: 只限于设置expire的部分;优先删除最近最少使用(less used,LRU)的key。

  • allkeys-random: 所有key通用; 随机删除一部分key。

  • volatile-random: 只限于设置了expire的部分;随机删除一部分key。

  • volatile-ttl: 只限于设置expire的部分; 优先删除剩余时间(time to live,TTL)短的key。

使用策略规则:

  1. 如果数据呈现幂律分布,也就是一部分数据访问频率高,一部分数据访问频率低,则使用allkeys-lru
  2. 如果数据呈现平等分布,也就是所有的数据访问频率都相同,则使用allkey

redis的过期策略和淘汰策略相关推荐

  1. 高性能分布式缓存redis(持久化原理 安全策略 过期删除内存淘汰策略 性能压测 高可用 Redis Cluster)

    redis redis(持久化原理 安全策略 过期删除&内存淘汰策略 性能压测 高可用 Redis Cluster) 1. 持久化原理 1.1 持久化流程(落盘) 1.2 RDB详解 1.2. ...

  2. Redis的持久化机制、过期策略、淘汰策略

    文章目录 一.持久化机制 1. RDB机制 2. AOF机制 RDB的优缺点 AOF的优缺点 持久化机制选择 二.过期策略 常见过期策略 Redis过期策略 1. 定期删除 2. 惰性删除 RDB对过 ...

  3. Redis(五)Redis内存维护方案(过期策略及淘汰策略)

    目录 内存维护解决方案 过期策略 内存淘汰策略 内存维护解决方案 在Redis的配置文件中redis.conf 中memeory managment # maxmemory <bytes> ...

  4. Redis 过期策略和淘汰策略

    1.Redis 过期策略 Redis 过期策略用于处理设置了缓存时间的数据,使用定时扫描和惰性删除机制删除到期的缓存数据. Redis 将设置了过期时间的 key 保存在一个独立的字典中,定时扫描就是 ...

  5. redis过期策略与淘汰策略

    redis过期策略与淘汰策略 1.过期策略 2.淘汰策略 3.在哪里配置? 4.Lazy Free 1.过期策略 1.redis中所有的key都可以通过expire命令来设置过期时间,所有被设置了过期 ...

  6. Redis-设置过期时间及淘汰策略

    文章目录 1. TTL 2. 设置过期时间 3. 删除过期key 4. 淘汰策略 Redis-设置过期时间及淘汰策略 项目组使用的 Redis 服务器发出了内存不足报警,查了一些资料,记录下. 1. ...

  7. Reds 过期策略 内存淘汰策略 持久化策略

    过期策略 定期删除 redis 会将每个设置了过期时间的 key 放入到一个独立的字典中,以后会定期遍历这个字典来删除到期的 key. 定期删除策略 Redis 默认会每秒进行十次过期扫描(100ms ...

  8. redis的删除策略和淘汰策略

    删除策略:是当数据到期,redis对过期数据的处理策略. 1.定时删除:当某一个key的过期时间到达后,redis就把对应的value和key删除. 优点是省内存,能快速的把过期数据删除腾出空间. 缺 ...

  9. Redis 键过期与内存淘汰

    Redis 中的过期策略 What 过期策略种类 1. 定时过期 每个设置过期时间的 key 都需要创建一个定时器,到过期时间就会立即对 key 进行清除.该策略可以立即清除过期的数据,对内存很友好: ...

最新文章

  1. oracle 10g 手动创建scott(tiger) schema
  2. 转载:k2pdfopt详细教程-让kindle看遍所有pdf
  3. Java中Socket通信-服务端和客户端双向传输字符串实现
  4. 技术人员写blog的好处
  5. [android] 隐式意图的配置
  6. 在指定文件夹下打开Jupyter Notebook
  7. 深度学习与自然语言处理之五:从RNN到LSTM
  8. 《UNIX环境高级编程 3rd》笔记(1 / 21):UNIX基础知识
  9. 自我训练——时间控制能力(四)
  10. javascript回调函数及推论
  11. Ruby 学习笔记6
  12. 设计模式-第五篇之命令模式
  13. python实现你说我猜游戏
  14. 有名管道与无名管道之间的区别
  15. Linux unison 效率,linux inotify+unison双向同步环境部署
  16. AOJ-AHU-OJ-5 渊子赛马
  17. Django安全认证机制CSRF
  18. 使用 LayUI+SpringBoot+Solr 模仿百度、做站内搜索引擎
  19. MySQL 远程连接报“ SQL 执行错误 # 1130.
  20. 7-1 求N分之一序列前N项和 (15 分)

热门文章

  1. 共享可写节包含重定位_艾瑞咨询:2020年数说双11电商购物节报告
  2. 科研人专属微信红包封面免费送!速领
  3. Microbiome:宏基因组分箱流程MetaWRAP分析实战和结果解读
  4. R语言使用ggpubr包的ggarrange函数组合多张结论图(水平并排组合)
  5. pandas使用replace函数将所有的无穷大值np.inf替换为缺失值np.nan、使用pandas的fillna函数用经验固定值填充缺失值np.nan
  6. pandas使用fillna函数并设置fffill参数使用列中的前序值填充缺失值(replace missing values with preceding values in column in d
  7. R语言ggplot2可视化对图形进行纹理填充实战及启示:遇到问题首先去思考有没有现成的包(ggpattern)可以去解决这个问题
  8. python和R对dataframe的拼接、采样、链式操作:dplyr、tidyr、concat、rbind、cbind、sample、sample_n、set.seed、mutate、filter
  9. TSNE算法是什么?该算法有什么缺陷?
  10. 生成对抗网络(Generative Adversarial Network,GAN)