redis内存数据数据集大小升到一定大的时候,就会实行数据淘汰策略(回收策略)。

1,volatile-lru:从已设置过期时间的哈希表(server.db[i].expires)中随机挑选多个key,然后在选到的key中用lru算法淘汰最近最少使用的数据

2,allkey-lru:从所有key的哈希表(server.db[i].dict)中随机挑选多个key,然后再选到的key中利用lru算法淘汰最近最少使用的数据

3,volatile-ttl:从已设置过期时间的哈希表(server.db[i].expires)中随机挑选多个key,然后在选到的key中选择过期时间最小的数据淘汰掉。

4,volatile-random:从已设置过期时间的哈希表(server.db[i].expires)中随机挑选key淘汰掉。

5,allkey-random:从所有的key的哈希表(server.db[i].dict)中随机挑数据淘汰

6,no-eviction(驱逐):内存达到上限,不淘汰数据。

redis确认驱逐某个键值对后,会删除这个数据,并将这个数据变更消息发布到本地(AOF持久化)和从机(主从连接)。

LRU数据淘汰机制是这样的:在数据集中随机挑选几个键值对,去除其中最近最少使用的键值对淘汰。所以Redis并不是保证取得所有数据集中最少最少使用的键值对,而只是在随机挑选的几个键值对中。

TTL数据淘汰机制:从国企时间redisDB.expires表中随机挑选几个键值对,取出其中最快过期的键值对淘汰。所以Redis并不保证取得所有过期时间表中最快过期的键值对,而是随机挑选的几个键值对中。

无论是什么机制,都是从所有的键值对中挑选合适的淘汰。

在哪里开始淘汰数据

Redis服务器每执行一次命令的时候,会检测使用的内存是否超额。如果超额,即进行数据淘汰。

redis淘汰策略面试题_redis有哪些数据淘汰策略相关推荐

  1. 数据结构(字典,跳跃表)、使用场景(计数器、缓存、查找表、消息队列、会话缓存、分布式锁)、Redis 与 Memcached、 键的过期时间、数据淘汰策略、持久化(RDB、AOF)

    1. 数据结构 1.1 字典 dictht 是一个散列表结构,使用拉链法保存哈希冲突的 dictEntry /* This is our hash table structure. Every dic ...

  2. redis 查询缓存_Redis缓存总结:淘汰机制、缓存雪崩、数据不一致....

    在实际的工作项目中, 缓存成为高并发.高性能架构的关键组件 ,那么Redis为什么可以作为缓存使用呢?首先可以作为缓存的两个主要特征: 在分层系统中处于内存/CPU具有访问性能良好, 缓存数据饱和,有 ...

  3. Redis系列教程(九):Redis的内存回收原理,及内存过期淘汰策略详解

    Redis内存回收机制 Redis的内存回收主要围绕以下两个方面: 1.Redis过期策略:删除过期时间的key值 2.Redis淘汰策略:内存使用到达maxmemory上限时触发内存淘汰数据 Red ...

  4. redis之数据淘汰策略(三)lfu

    因为redis的lru的淘汰策略关注的是key的访问时间,如果是一次性的遍历key那种操作,将导致很多不在访问的key滞留在内存中,将立即需要访问的数据淘汰出去. 因此在redis4.0.0中引入了l ...

  5. Redis的一点理解「基本类型」「淘汰策略」

    文章目录 前言 一.基本类型 String Hash List Set ZSet Hyperloglog 二.淘汰策略 LFU && LRU TTL淘汰 Random淘汰: 前言 Re ...

  6. redis缓存的雪崩、击穿、穿透,淘汰策略,持久化

    1.redis缓存的雪崩.击穿.穿透,在实际中如何处理? 雪崩:缓存不存在,数据库存在,高并发,大量的key 原因:大量数据同时过期,Redis宕机 解决方案:给缓存数据的过期时间上加上小的随机数,避 ...

  7. redis 怎么关闭写盘_Redis持久化策略

    全是干货的技术号: 本文已收录在github,欢迎 star/fork:https://github.com/Wasabi1234/Java-Interview-Tutorial Redis 对外提供 ...

  8. Redis:常见的面试题

    Redis的那些最常见面试问题 先把这些面试题给浏览一遍,大概知道redis的一些相关名词,接下来几篇博客才会继续的详细一些写redis的一些特性~~然后慢慢把redis学会. 1.什么是Redis? ...

  9. redis常见面试题有哪些?redis集群面试题及答案整理

    下面要给大家带来的是一整套的redis集群面试题,包含了具体的面试题目和答案,想要来看这方面面试题的小伙伴可以来了解一下. 一.面试题及答案 1.Redis有哪些适合的场景? (1)Session共享 ...

最新文章

  1. 浅谈手机网站优化的需要注意哪些事项?
  2. javascript写贪吃蛇
  3. ImportError: libcublas.so.10.0: cannot open shared object file: No such file or directory
  4. 从零开始搭建口袋妖怪管理系统(3)-实现一个简单的SPA管理系统
  5. (80)Vivado综合约束方法
  6. 基于Java实现的快速排序
  7. pytorch from_numpy
  8. 普通人赚钱方法,千万别想靠创业,就能一次翻身
  9. 解决IP地址冲突的问题
  10. rsync文件同步应用--客户端的配置
  11. php中怎么创建对象,php创建对象有哪几种方法
  12. pytdx 获取板块指数_通达信板块代码,怎么查看各行业板块指数?
  13. Python PDF转image方法小结
  14. 开发中最常用的GitHub上 优秀的 Android 开源项目整理(精品)
  15. suse linux快捷键,Suse Linux整理大全:快捷键
  16. Python自省(反射)详解
  17. 谷歌SEO算法更新大全(2010-2021)
  18. 艾司博讯:拼多多全店推广是什么意思?
  19. 没学过Word排版的看过来 Word排版技巧分享
  20. 键盘音效,使得敲代码更加给力

热门文章

  1. C++ Primer 小贴士之第一二章
  2. oracle biee
  3. Hibernate初探(二)
  4. 一文搞定Swing和Qt按钮和文本框的创建
  5. 2009年4月计算机网络原理,全国2009年4月高等教育自学考试计算机网络原理
  6. 控件 qml_Flat风格的Qml进度条
  7. 剑指offer(05)用两个栈实现队列
  8. 加大weblogic在Linux内存,在linux运行weblogic出现运行内存不足错误,求鞭挞....
  9. 涨跌因子计算器下载哪里下载_小白计算器软件下载-小白计算器app下载 v1.0 安卓版...
  10. 2018届应届生android面试总结