Redis(五)Redis内存维护方案(过期策略及淘汰策略)
目录
内存维护解决方案
过期策略
内存淘汰策略
内存维护解决方案
在Redis的配置文件中redis.conf 中memeory managment
# maxmemory <bytes>
# MAXMEMORY POLICY:
# volatile-lru -> Evict using approximated LRU, only keys with an expire set.
# allkeys-lru -> Evict any key using approximated LRU.
# volatile-lfu -> Evict using approximated LFU, only keys with an expire set.
# allkeys-lfu -> Evict any key using approximated LFU.
# volatile-random -> Remove a random key having an expire set.
# allkeys-random -> Remove a random key, any key.
# volatile-ttl -> Remove the key with the nearest expire time (minor TTL)
# noeviction -> Don't evict anything, just return an error on write operations.
#
# The default is:
# maxmemory-policy noeviction
redis的配置中没有设置最大的内存大小
如果Redis没有设置最大内存大小或者设置为0,在64操作系统下Redis不限制使用内存大小,在32位操作系统下最多使用3/4内存空间。
内存操作命令:
- config get maxmemory :查看最大内存情况
- config set maxmemory value :设置大小
- info memory :查看当前Redis内存使用命令
内存维护的方案主要是过期策略和内存淘汰策略
过期策略:用户处理过期的缓存数据
内存淘汰策略用于在 内存空间不足时需要额外申请空间的数据
过期策略
redis中对过期的数据的处理,通常有三种方式:
1、定时过期:对每个设置过期时间的key都需要建一个定时器,到达过期时间会立即清除。该方法对内存友好,对CPU不友好,会占用大量的CPU资源去处理过期数据。
2、惰性过期:只有当访问一个key时,才会判断key是否过期,该方案最大化的节省CPU资源,但会占用内存资源(对CPU友好,对内存不友好)
3、定期过期:每隔一定的时间,会扫描一定数据的expires字典中的一些数据,并清除掉其中已过期的数据
注:expires字典会保存所有设置过期时间的数据。
内存淘汰策略
在内存不足时(内存使用已经超过maxmemory参数设定值时),需要处理新写入的且需要申请格外的空间的数据
- volatile-lru:从设置过期时间的数据集中(expries)中挑选出最近最少使用的数据淘汰
- volatile-ttl:从设置过期时间的数据集中(expires)中挑选中将要过期的数据淘汰,ttl的值越大越优先被淘汰
- volatile-random:从设置过期时间的数据集(expries)中随机的选取数据淘汰
- allkeys-lru:从数据集(dict)中挑选最近最少使用的数据淘汰,该策略要淘汰的数据是全体key的集合,而非过期的key
- allkeys-random:从数据集(dict)中选择任意数据淘汰
- noeviction:禁止删除数据,当内存不足时,新写入操作就会报错,请求可以继续进行,保证已插入的数据不会丢失
主要策略:分为LRU淘汰、TTL淘汰、Random淘汰
LRU策略(最近最少使用),核心思想,如果数据最近被访问过,那么将来被访问的几率也就会越高
TTL策略:在Redis中设置过期时间的数据集expries中挑选数据,根据ttl 过期时间来进行淘汰,值越大越先淘汰
随机策略:在数据集中随机数据的获取进行删除
LFU策略:Redis 4.0中新增策略,(最近不经常使用)核心思想:如果数据在最近一段时间很少被访问到,那么认为数据在将来被访问的可能性也比较小,因此,当空间满时,最小访问频率的数据会被最先淘汰
volatile-lfu:
allkeys-lfu:
LRU与LFU是不同的:
LRU是最近最少使用页面置换算法(Least Recently Used),也就是首先淘汰最长时间未被使用的页面!
LFU是最近最不常用页面置换算法(Least Frequently Used),也就是淘汰一定时期内被访问次数最少的页!
可以简单理解为:LRU是首先淘汰最近没有被访问过的;LFU是首先淘汰访问频率最低的。
Redis(五)Redis内存维护方案(过期策略及淘汰策略)相关推荐
- redis过期策略与淘汰策略
redis过期策略与淘汰策略 1.过期策略 2.淘汰策略 3.在哪里配置? 4.Lazy Free 1.过期策略 1.redis中所有的key都可以通过expire命令来设置过期时间,所有被设置了过期 ...
- Redis-设置过期时间及淘汰策略
文章目录 1. TTL 2. 设置过期时间 3. 删除过期key 4. 淘汰策略 Redis-设置过期时间及淘汰策略 项目组使用的 Redis 服务器发出了内存不足报警,查了一些资料,记录下. 1. ...
- redis的过期策略和淘汰策略
过期键删除策略 1.定时删除:在设置键的过期时间的同时,创建一个定时器timer,让定时器在键过期时间来临时,立即执行对键的删除操作. 2.惰性删除:放任键过期不管,但是每次从键空间中获取键时,都检查 ...
- Redis的持久化机制、过期策略、淘汰策略
文章目录 一.持久化机制 1. RDB机制 2. AOF机制 RDB的优缺点 AOF的优缺点 持久化机制选择 二.过期策略 常见过期策略 Redis过期策略 1. 定期删除 2. 惰性删除 RDB对过 ...
- Redis 过期策略和淘汰策略
1.Redis 过期策略 Redis 过期策略用于处理设置了缓存时间的数据,使用定时扫描和惰性删除机制删除到期的缓存数据. Redis 将设置了过期时间的 key 保存在一个独立的字典中,定时扫描就是 ...
- Redis的一点理解「基本类型」「淘汰策略」
文章目录 前言 一.基本类型 String Hash List Set ZSet Hyperloglog 二.淘汰策略 LFU && LRU TTL淘汰 Random淘汰: 前言 Re ...
- redis的删除策略和淘汰策略
删除策略:是当数据到期,redis对过期数据的处理策略. 1.定时删除:当某一个key的过期时间到达后,redis就把对应的value和key删除. 优点是省内存,能快速的把过期数据删除腾出空间. 缺 ...
- redis缓存的雪崩、击穿、穿透,淘汰策略,持久化
1.redis缓存的雪崩.击穿.穿透,在实际中如何处理? 雪崩:缓存不存在,数据库存在,高并发,大量的key 原因:大量数据同时过期,Redis宕机 解决方案:给缓存数据的过期时间上加上小的随机数,避 ...
- redis持久化、内存优化、过期、LRU内存
为什么80%的码农都做不了架构师?>>> 1.过期(expire命令) 设置了失效时间的元素,对于DEL/SET/GETSET/*STORE这些会删除或者重新设置元素的命令,如 ...
最新文章
- 【字符串】manacher算法
- 比特币分叉第一案,谁动了我的比特币现金?
- 2021年网购大数据:哪些品类坑最多?什么价位的商品最有保障?
- oracle过滤器基础,Oracle培训(四十六)——Servlet第六章知识点总结——过滤器编程...
- kubernetes1.8.4 安装指南 (基于静态Pod方式安装)
- 后端开发应该掌握的 Redis 基础
- Android之抓取adb logcat全日志后怎么过滤掉只包含当前app进程的日志(一般抓启动app奔溃日志)
- 没用过这几招,别说你会使用Jupyter Notebook
- Linux开发_printf打印无消息或末尾带“#“or“%“
- 问题分析与解决——ADSL错误代码(转)
- 【遗传算法】基于改进的遗传和粒子群算法求解高斯烟羽模型气体扩散优化问题含Matlab源码
- 生产订单管理系统软件哪家好?
- 如何购买阿里云域名教程(域名购买+配置)~
- 加密项目必修科目:代币经济学
- 谷歌是如何跌下神坛的?
- 我的游戏开发收藏夹 (不定期更新)
- 石川 :学术界、管理人、投资者视角下的因子投资
- linux编译obs,如何在Ubuntu 18.04/16.04中安装OBS Studio 21.1
- 用计算机做图画ppt,用计算机画图课件.ppt
- 13- 数据建模-建模方法三:实体建模
热门文章
- 用endnote导入参考文献要求期刊名称缩写
- html css alpha,CSS滤镜之alpha属性-网页设计,HTML/CSS
- 艾孜尔江_Unity 3D入门常用函数用法及案例概要【干货】
- 新手别怕系列:PHP单词
- linux 查看文件命令
- android 6 连接电脑,安卓手机怎么连接电脑?附详细的方法和步骤
- 大话设计模式 第二章 策略模式购物车价格查询
- js+打开php文档,javascript打开word文档的方法_基础知识
- VOT数据集报错问题
- oracle 12c导入dmp文件(实践)