redis内存淘汰策略

简介: Redis支持8种内存淘汰策略,包括noeviction、volatile-ttl、allkeys-random、volatile-random、allkeys-lru、volatile-lru、allkeys-lfu和volatile-lfu。这些策略分别针对所有键或仅设置TTL的键,采用随机、LRU(最近最久未使用)或LFU(最少频率使用)等算法进行淘汰。

Redis支持8种不同的内存淘汰策略:
● noeviction: 不淘汰任何key,但是内存满时不允许写入新数据,默认就是这种策略。
● volatile-ttl: 对设置了TTL的key,比较key的剩余TTL值,TTL越小越先被淘汰
● allkeys-random:对全体key ,随机进行淘汰。也就是直接从db->dict中随机挑选
● volatile-random:对设置了TTL的key ,随机进行淘汰。也就是从db->expires中随机挑选。
● allkeys-lru: 对全体key,基于LRU算法进行淘汰
● volatile-lru: 对设置了TTL的key,基于LRU算法进行淘汰
● allkeys-lfu: 对全体key,基于LFU算法进行淘汰
● volatile-lfu: 对设置了TTL的key,基于LFI算法进行淘汰
比较容易混淆的有两个算法:
● LRU(LeastRecentlyUsed),最近最久未使用。用当前时间减去最后一次访问时间,这个值越大则淘汰优先级越高。
● LFU(LeastFrequentlyUsed),最少频率使用。会统计每个key的访问频率,值越小淘汰优先级越高。

目录
相关文章
|
运维 NoSQL 测试技术
Redis:内存陡增100%深度复盘
本文深度分析了Redis内存陡增100%的一些细节和解决方案。
648 1
Redis:内存陡增100%深度复盘
|
NoSQL Java Redis
springBoot中redis的自动装配
springBoot中redis的自动装配
2623 0
|
存储 缓存 NoSQL
Redis原理—4.核心原理摘要
Redis 是一个基于内存的高性能NoSQL数据库,支持分布式集群和持久化。其网络通信模型采用多路复用监听与文件事件机制,通过单线程串行化处理大量并发请求,确保高效运行。本文主要简单介绍了 Redis 的核心特性。
|
JSON 前端开发 Java
Spring MVC 核心组件与请求处理机制详解
本文解析了 Spring MVC 的核心组件及请求流程,核心组件包括 DispatcherServlet(中央调度)、HandlerMapping(URL 匹配处理器)、HandlerAdapter(执行处理器)、Handler(业务方法)、ViewResolver(视图解析),其中仅 Handler 需开发者实现。 详细描述了请求执行的 7 步流程:请求到达 DispatcherServlet 后,经映射器、适配器找到并执行处理器,再通过视图解析器渲染视图(前后端分离下视图解析可省略)。 介绍了拦截器的使用(实现 HandlerInterceptor 接口 + 配置类)及与过滤器的区别
1236 0
|
前端开发 JavaScript
深入理解并实践React Hooks —— useEffect与useState
深入理解并实践React Hooks —— useEffect与useState
586 1
|
网络安全 网络架构
公网IP与内网穿透与端口映射区别
公网IP(Public IP) 公网IP是全球互联网上可路由的IP地址,用于标识网络中的设备。这些IP地址是全球唯一的,可以用来访问互联网上的资源。 公网IP通常由互联网服务提供商(ISP)分配给网络中的设备,例如家庭路由器、服务器或计算机。 公网IP是公开可访问的,因此可以用来托管服务器、提供网络服务,或者访问互联网上的资源。
1147 5
|
存储 前端开发 JavaScript
React useState 和 useRef 的区别
本文介绍了 React 中 `useState` 和 `useRef` 这两个重要 Hook 的区别和使用场景。`useState` 用于管理状态并在状态变化时重新渲染组件,适用于表单输入、显示/隐藏组件、动态样式等场景。`useRef` 则用于在渲染之间保持可变值而不触发重新渲染,适用于访问 DOM 元素、存储定时器 ID 等场景。文章还提供了具体的代码示例,帮助读者更好地理解和应用这两个 Hook。
826 0
|
Oracle 关系型数据库 OLAP
Oracle 11.2.0.4数据泵expdp导出报DBMS_AW_EXP等信息
Oracle 11.2.0.4数据泵expdp导出报DBMS_AW_EXP等信息
815 0
|
存储 关系型数据库 MySQL
MySQL主从复制原理和使用
本文介绍了MySQL主从复制的基本概念、原理及其实现方法,详细讲解了一主两从的架构设计,以及三种常见的复制模式(全同步、异步、半同步)的特点与适用场景。此外,文章还提供了Spring Boot环境下配置主从复制的具体代码示例,包括数据源配置、上下文切换、路由实现及切面编程等内容,帮助读者理解如何在实际项目中实现数据库的读写分离。
1820 1
MySQL主从复制原理和使用