redis淘汰策略面试题_redis有哪些数据淘汰策略
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有哪些数据淘汰策略相关推荐
- 数据结构(字典,跳跃表)、使用场景(计数器、缓存、查找表、消息队列、会话缓存、分布式锁)、Redis 与 Memcached、 键的过期时间、数据淘汰策略、持久化(RDB、AOF)
1. 数据结构 1.1 字典 dictht 是一个散列表结构,使用拉链法保存哈希冲突的 dictEntry /* This is our hash table structure. Every dic ...
- redis 查询缓存_Redis缓存总结:淘汰机制、缓存雪崩、数据不一致....
在实际的工作项目中, 缓存成为高并发.高性能架构的关键组件 ,那么Redis为什么可以作为缓存使用呢?首先可以作为缓存的两个主要特征: 在分层系统中处于内存/CPU具有访问性能良好, 缓存数据饱和,有 ...
- Redis系列教程(九):Redis的内存回收原理,及内存过期淘汰策略详解
Redis内存回收机制 Redis的内存回收主要围绕以下两个方面: 1.Redis过期策略:删除过期时间的key值 2.Redis淘汰策略:内存使用到达maxmemory上限时触发内存淘汰数据 Red ...
- redis之数据淘汰策略(三)lfu
因为redis的lru的淘汰策略关注的是key的访问时间,如果是一次性的遍历key那种操作,将导致很多不在访问的key滞留在内存中,将立即需要访问的数据淘汰出去. 因此在redis4.0.0中引入了l ...
- Redis的一点理解「基本类型」「淘汰策略」
文章目录 前言 一.基本类型 String Hash List Set ZSet Hyperloglog 二.淘汰策略 LFU && LRU TTL淘汰 Random淘汰: 前言 Re ...
- redis缓存的雪崩、击穿、穿透,淘汰策略,持久化
1.redis缓存的雪崩.击穿.穿透,在实际中如何处理? 雪崩:缓存不存在,数据库存在,高并发,大量的key 原因:大量数据同时过期,Redis宕机 解决方案:给缓存数据的过期时间上加上小的随机数,避 ...
- redis 怎么关闭写盘_Redis持久化策略
全是干货的技术号: 本文已收录在github,欢迎 star/fork:https://github.com/Wasabi1234/Java-Interview-Tutorial Redis 对外提供 ...
- Redis:常见的面试题
Redis的那些最常见面试问题 先把这些面试题给浏览一遍,大概知道redis的一些相关名词,接下来几篇博客才会继续的详细一些写redis的一些特性~~然后慢慢把redis学会. 1.什么是Redis? ...
- redis常见面试题有哪些?redis集群面试题及答案整理
下面要给大家带来的是一整套的redis集群面试题,包含了具体的面试题目和答案,想要来看这方面面试题的小伙伴可以来了解一下. 一.面试题及答案 1.Redis有哪些适合的场景? (1)Session共享 ...
最新文章
- 浅谈手机网站优化的需要注意哪些事项?
- javascript写贪吃蛇
- ImportError: libcublas.so.10.0: cannot open shared object file: No such file or directory
- 从零开始搭建口袋妖怪管理系统(3)-实现一个简单的SPA管理系统
- (80)Vivado综合约束方法
- 基于Java实现的快速排序
- pytorch from_numpy
- 普通人赚钱方法,千万别想靠创业,就能一次翻身
- 解决IP地址冲突的问题
- rsync文件同步应用--客户端的配置
- php中怎么创建对象,php创建对象有哪几种方法
- pytdx 获取板块指数_通达信板块代码,怎么查看各行业板块指数?
- Python PDF转image方法小结
- 开发中最常用的GitHub上 优秀的 Android 开源项目整理(精品)
- suse linux快捷键,Suse Linux整理大全:快捷键
- Python自省(反射)详解
- 谷歌SEO算法更新大全(2010-2021)
- 艾司博讯:拼多多全店推广是什么意思?
- 没学过Word排版的看过来 Word排版技巧分享
- 键盘音效,使得敲代码更加给力
热门文章
- C++ Primer 小贴士之第一二章
- oracle biee
- Hibernate初探(二)
- 一文搞定Swing和Qt按钮和文本框的创建
- 2009年4月计算机网络原理,全国2009年4月高等教育自学考试计算机网络原理
- 控件 qml_Flat风格的Qml进度条
- 剑指offer(05)用两个栈实现队列
- 加大weblogic在Linux内存,在linux运行weblogic出现运行内存不足错误,求鞭挞....
- 涨跌因子计算器下载哪里下载_小白计算器软件下载-小白计算器app下载 v1.0 安卓版...
- 2018届应届生android面试总结