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. Linux使用Shell脚本实现ftp的自动上传下载
  2. [提示]普通用户使用sealos安装k8s集群的话,默认还是会装到root用户的home目录/root
  3. P5004-专心OI - 跳房子【dp,矩阵乘法】
  4. python 函数参数注解_python-如何使用函数注释来验证函数调用类...
  5. Pro*c使用指示变量来处理NULL列值
  6. Golang系列(三)之并发编程
  7. mysqlslap 压力测试工具
  8. 11.UNIX 环境高级编程--线程
  9. 使用inno setup制作安装包
  10. 构建之法助教园地第一次作业--点评西北师范大学|李晓婷
  11. JavaScript/js 转 Python 代码转换神器 jiphy
  12. linux4 系统下载,syslinux下载|
  13. Ajax上传文件(视频),并获取上传进度、上传速度和剩余时间。
  14. Apache RocketMQ源码学习之生产者发送消息
  15. html select 选中触发,实现select中指定option选中触发事件
  16. 解决DELL台式机两用音频接口不能识别耳麦的问题
  17. php各种编码集详解和以及在什么情况下进行使用
  18. Neo4j3-Neo4j基础操作(中)
  19. MYSQL5.7下载安装详细教程
  20. 千万不要照着镜子洗头发

热门文章

  1. Ruby中require,load,和include的区别
  2. 汇编中addr和offset
  3. C++类的内存地址存放问题
  4. Android—屏幕适配和卡顿优化
  5. IOS之使用AwesomeMenu框架令人惊叹的菜单
  6. 电脑已经连上网却显示没网图标小地球,导致国际游戏暴雪等软件无法运行(已解决)
  7. python span.string函数_【转】python f-string
  8. see rebel case 无法越狱_周星驰为什么不拍喜剧,王晶:年纪大了,无法面对自己...
  9. 无法打开包括文件:“osgGA/MatrixManipulator”:No such file or directory
  10. Android开发之listview添加头布局(header)和脚布局(footer)的方法