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

    文章

    3769

    浏览量

    64292
  • Redis
    +关注

    关注

    0

    文章

    371

    浏览量

    10853

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

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

收藏 人收藏

    评论

    相关推荐

    六种dcdc变换器特点是什么

    DC-DC变换器是将一个电压值的直流电源转换成另一个电压值的直流电源的电子设备。它们在电源管理、电池充电、便携式电子设备等领域中非常重要。以下是六种常见的DC-DC变换器及其特点的介绍: 降压变换器
    的头像 发表于 09-30 16:27 384次阅读

    水冷液冷负载系统的六种基本类型

    您可以选择六种基本类型的冷却系统,以满足负载的冷却需求。每个人都有其优点和缺点。本文旨在识别不同类型的冷却系统并确定它们的优缺点,以便您可以根据自己的需求做出明智的选择。
    的头像 发表于 07-08 07:35 452次阅读
    水冷液冷负载系统的<b class='flag-5'>六种</b>基本类型

    快速搞懂GPIO控制器的六种模式

    六种常见模式,我们特地整理了这篇文章。。快速搞懂GPIO控制器的六种模式我们拿STM32芯片举例,下图是GPIO控制器的简单框图:通过框图可以分为输入和输出两个
    的头像 发表于 05-18 08:04 1397次阅读
    快速搞懂GPIO控制器的<b class='flag-5'>六种</b>模式

    Redis开源版与Redis企业版,怎么选用?

    点击“蓝字”关注我们数以千计的企业和数以百万计的开发人员Redis开源版来构建应用程序。但随着用户数量、数据量和地区性的增加,成本、可扩展性、运营和可用性等问题也随之而来。Redis企业版
    的头像 发表于 04-04 08:04 980次阅读
    <b class='flag-5'>Redis</b>开源版与<b class='flag-5'>Redis</b>企业版,怎么选用?

    Redis的LRU实现和应用

    在编程中,计数器是一基本但强大的工具,用于跟踪和管理数据和资源。本文将深入探讨不同类型的计数器的应用,从Redis的LRU(最近最少使用)缓存淘汰算法的实现,到如何在内存受限的环境中有效地使用计数器,再到普通计数器的巧妙应用。
    的头像 发表于 12-15 09:24 575次阅读

    六种主流物联网无线技术盘点:一文治愈你的无线选择困难症!

    六种主流物联网无线技术盘点:一文治愈你的无线选择困难症!
    的头像 发表于 12-07 10:38 896次阅读
    <b class='flag-5'>六种</b>主流物联网无线技术盘点:一文治愈你的无线选择困难症!

    redis数据会自动清除吗

    Redis数据不会自动清除,但它提供了一些机制来管理数据的过期和淘汰。在默认情况下,Redis只会在内存中存储数据,并且没有自动清除机制。 Redis数据持久化和过期: RDB持久化:
    的头像 发表于 12-05 10:13 2312次阅读

    redis容器内怎么查看redis日志

    redis是一款流行的开源内存数据库,常用于缓存、消息队列、任务管理等场景。在使用redis时,了解如何查看redis日志对于排查问题、监控性能和分析应用程序行为非常重要。在本文中,我们将介绍在
    的头像 发表于 12-05 10:10 3513次阅读

    redis的lru原理

    Redis是一基于内存的键值数据库,它使用了LRU(Least Recently Used)算法来进行缓存的数据淘汰。LRU算法的核心思想是最近最少使用的数据将会在未来也不常用,因此应该优先
    的头像 发表于 12-05 09:56 607次阅读

    redis的原理和使用场景

    、消息队列、实时分析、排行榜和计数器等场景。本文将详细介绍Redis的原理和使用场景。 一、Redis的原理 Redis的原理主要包括以下几个方面: 内存数据库:Redis是一
    的头像 发表于 12-04 16:29 569次阅读

    redis hash底层实现原理

    Redis是一个开源的内存数据库,使用键值对存储数据。其中,Redis中的数据结构之一就是哈希(Hash),它提供了一将多个字段(Field)存储在一个键(Key)中的方法。那么Redis
    的头像 发表于 12-04 16:27 564次阅读

    redis的持久化方式RDB和AOF的区别

    Redis 是一个高性能的键值对数据库,提供了两持久化方式:RDB 和 AOF。RDB 是将 Redis 的数据快照保存到磁盘上,而 AOF 则是将 Redis 的操作命令追加到文件
    的头像 发表于 12-04 16:25 747次阅读

    redis淘汰策略

    Redis是一基于内存的键值存储系统,为了充分利用内存,Redis采用了一些淘汰策略来管理内存空间。
    的头像 发表于 12-04 16:23 524次阅读

    redis持久化方式的区别

    的完整性和一致性。 Redis提供了两持久化方式:RDB(Redis Database)和AOF(Append Only File)。这两方式各有优劣,下面我们将详细介绍它们的区别
    的头像 发表于 12-04 11:12 502次阅读

    Java redis锁怎么实现

    在Java中实现Redis锁涉及到以下几个方面:Redis的安装配置、Redis连接池的使用、Redis数据结构的选择、实现分布式锁的几种方式等。 一、
    的头像 发表于 12-04 10:47 1130次阅读