0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

redis六种淘汰策略

Android编程精选 来源:CSDN 作者:CSDN 2022-08-01 10:23 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

redis是个基于内存的缓存数据库,既然是基于内存的,那肯定就会有存满的时候

如果真的存满了,再有新的数据过来肯定就存不进去了

此时redis会执行既定的一些淘汰策略,本文大概讲一下redis六种淘汰策略

01六种淘汰策略

1.noeviction(默认策略):对于写请求不再提供服务,直接返回错误(DEL请求和部分特殊请求除外)

2.allkeys-lru:从所有key中使用LRU算法进行淘汰(LRU算法:即最近最少使用算法)

3.volatile-lru:从设置了过期时间的key中使用LRU算法进行淘汰

4.allkeys-random:从所有key中随机淘汰数据

5.volatile-random:从设置了过期时间的key中随机淘汰

6.volatile-ttl:在设置了过期时间的key中,淘汰过期时间剩余最短的

当使用volatile-lru、volatile-random、volatile-ttl这三种策略时,如果没有key可以被淘汰,则和noeviction一样返回错误

02如何获取及设置内存淘汰策略

1、获取当前内存淘汰策略:

127.0.0.1:6379> configgetmaxmemory-policy

可以看到当前使用的默认的noeviction策略

2、获取Redis能使用的最大内存大小

127.0.0.1:6379> configgetmaxmemory

如果不设置最大内存大小或者设置最大内存大小为0,在64位操作系统下不限制内存大小,在32位操作系统下最多使用3GB内存。32 位的机器最大只支持 4GB 的内存,而系统本身就需要一定的内存资源来支持运行,所以 32 位机器限制最大 3 GB 的可用内存

3、设置淘汰策略

通过配置文件设置淘汰策略(修改redis.conf文件):

maxmemory-policy allkeys-lru

通过命令修改淘汰策略:

127.0.0.1:6379> configsetmaxmemory-policyallkeys-lru

4、设置Redis最大占用内存大小

#设置Redis最大占用内存大小为100M
127.0.0.1:6379> configsetmaxmemory100mb

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据库
    +关注

    关注

    7

    文章

    4095

    浏览量

    68717
  • Redis
    +关注

    关注

    0

    文章

    397

    浏览量

    12294

原文标题:Redis 6种淘汰机制,看看你知道哪些?

文章出处:【微信号:AndroidPush,微信公众号:Android编程精选】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Redis生产环境部署避坑指南

    Redis 是 PHP 项目中使用最广泛的 Nosql 缓存数据库,但很多团队在生产环境中部署 Redis 时存在诸多隐患:内存配置不当导致 OOM、持久化配置错误导致数据丢失、集群部署不合理导致性能下降、安全配置缺失导致被攻击。
    的头像 发表于 05-25 11:06 364次阅读

    一次Redis连接数打满导致业务雪崩的排查记录

    更严重的是,Redis 连接数打满后,连锁导致依赖 Redis 的认证服务、会话服务、缓存服务全部不可用,流量进一步转移到剩余的正常服务,引发了小范围的业务雪崩。
    的头像 发表于 05-08 14:27 237次阅读

    Redis应用监控指标大盘点

    Redis作为高性能内存数据库,广泛应用于缓存、会话存储、消息队列等场景。对Redis运行状况的有效监控,是保障业务稳定性的关键。本文的目的是帮助运维工程师建立完整的Redis监控知识体系,讲解需要监控哪些指标、如何采集这些指标
    的头像 发表于 04-09 10:07 237次阅读

    全方位对比:Redis能取代MySQL吗?看完这篇你就懂了

    Redis能不能取代MySQL?答案很明确:不能取代,但可以互补。
    的头像 发表于 04-07 10:50 297次阅读
    全方位对比:<b class='flag-5'>Redis</b>能取代MySQL吗?看完这篇你就懂了

    Redis哨兵模式的自动故障检测与主从切换实战

    Redis 主从复制解决了读扩展和数据冗余问题,但主节点故障时需要人工介入切换,这在生产环境中是不可接受的。Sentinel(哨兵)模式在主从架构之上增加了自动故障检测和故障转移能力,是 Redis 高可用的标准方案之一。
    的头像 发表于 02-27 11:05 478次阅读

    Redis内存管理、持久化策略与慢查询排查分析

    Redis 在生产环境中承担着缓存、会话存储、消息队列、分布式锁等多种角色。随着数据量增长和并发压力上升,内存碎片、持久化 I/O 抖动、慢查询堆积这三类问题会逐渐显现,直接影响服务延迟和稳定性。Redis 8.x 在内存管理和持久化机制上做了若干改进,但核心调优思路与
    的头像 发表于 02-27 11:00 394次阅读

    代码照亮未来:兰州大学开源鸿蒙技术俱乐部的六种青春答卷

    ;没有单打独斗的英雄,只有并肩攻坚的战友。从内核调试到应用创新,从社区贡献到生态布道,这群心怀“技术报国”理想的青年,正在用一行行代码构建开源鸿蒙的明天。 这位同学,正是技术俱乐部百余名成员的代表,他们的故事
    的头像 发表于 01-19 16:58 1034次阅读
    代码照亮未来:兰州大学开源鸿蒙技术俱乐部的<b class='flag-5'>六种</b>青春答卷

    盘点连接器的六种锁定机构

    六种连接器锁止机构是什么?连接器上有各种锁定机制,包括插销锁、LacthLocking、Lever、推拉式、螺钉和卡入式。这些代表了更常见的样式,但并非详尽无遗。连接器的锁止可以支持多种功能,例如
    的头像 发表于 10-17 08:02 939次阅读
    盘点连接器的<b class='flag-5'>六种</b>锁定机构

    代理式AI提升团队绩效的六种方式

    根据凯捷(Capgemini)预测,未来三年内,AI 智能体有望参与到企业的大多数业务中,而有效的人机协作预计将使人类参与高价值任务的比例提升 65%。
    的头像 发表于 09-23 14:28 841次阅读

    Redis集群部署配置详解

    Redis集群是一分布式Redis解决方案,通过数据分片和主从复制实现高可用性和横向扩展。集群将整个数据集分割成16384个哈希槽(hash slots),每个节点负责一部分槽位。
    的头像 发表于 07-17 11:04 1287次阅读

    Redis集群部署与性能优化实战

    Redis作为高性能的内存数据库,在现代互联网架构中扮演着关键角色。作为运维工程师,掌握Redis的部署、配置和优化技能至关重要。本文将从实战角度出发,详细介绍Redis集群的搭建、性能优化以及监控运维的核心技术。
    的头像 发表于 07-08 17:56 1090次阅读

    三相无刷直流电机改进型脉宽调制策略

    摘要:研究了一改进型无刷直流电机脉宽调制策略。在传统的无刷直流电机脉宽调制技术的基础上,针对调制期间开关管断开时的电机绕组电流无法有效控制问题,研究了一基于开关电压源型逆变器的四
    发表于 06-13 09:37

    一文详解线性稳压器IC的引脚保护

    根据使用条件和环境的不同,需要对线性稳压器IC的引脚进行保护。本文将介绍六种可能的情况及相应的保护电路示例。
    的头像 发表于 06-12 11:16 1858次阅读
    一文详解线性稳压器IC的引脚保护

    【经验分享】在Omni3576上编译Redis-8.0.2源码,并安装及性能测试

    本文首先介绍Redis是什么,然后介绍如何在Omni3576上编译Redis-8.0.2源码,以及从源码编译、安装Redis,最后介绍如何在Omni3576上运行Redis性能测试,并
    的头像 发表于 06-05 08:05 1181次阅读
    【经验分享】在Omni3576上编译<b class='flag-5'>Redis</b>-8.0.2源码,并安装及性能测试

    【幸狐Omni3576边缘计算套件试用体验】Redis最新8.0.2版本源码安装及性能测试

    本文首先介绍Redis是什么,然后介绍如何在Omni3576上编译Redis-8.0.2源码,以及从源码编译、安装Redis,最后介绍如何在Omni3576上运行Redis性能测试,并
    发表于 06-03 01:28