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

    文章

    3590

    浏览量

    63365
  • Redis
    +关注

    关注

    0

    文章

    362

    浏览量

    10491

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

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

收藏 人收藏

    评论

    相关推荐

    redis数据会自动清除吗

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

    redis容器内怎么查看redis日志

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

    redis的lru原理

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

    redis淘汰策略

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

    Redis 如何删除数据

    Redis 中所有的键都可以设置过期策略,就像是所有的键都可以上"生死簿",上了生死簿的键到时间后阎王就会叉掉这个键。同一时间大量的键过期,阎王就会忙不过来。同时因为 Redis 是单线程的,导致
    的头像 发表于 10-09 16:01 268次阅读

    Redis的删除策略和内存淘汰机制介绍

    Redis过期键的删除策略Redis的过期删除策略就是:惰性删除和定期删除两种策略配合使用。 惰性删除:
    的头像 发表于 10-09 11:06 283次阅读

    Redis的常用场景有哪些

    Redis的常用场景有哪些? 1、缓存 缓存现在几乎是所有中大型网站都在用的必杀技,合理的利用缓存不仅能够提升网站访问速度,还能大大降低数据库的压力。Redis提供了键过期功能,也提供了灵活的键淘汰
    的头像 发表于 10-09 10:44 335次阅读

    Redis键的生存时间、生存策略和毁灭策略

    先来回顾一下Redis键的生存时间,过期时间的设置;然后会讲到过期键删除策略;然后会聊其他功能对过期键的处理。 2.键的生存时间 键过期时间设置通过Expire命令或者Pexpire命令,客户端可以
    的头像 发表于 10-08 14:55 220次阅读
    <b class='flag-5'>Redis</b>键的生存时间、生存<b class='flag-5'>策略</b>和毁灭<b class='flag-5'>策略</b>

    MySQL与Redis延迟双删策略

    背景 在当前环境下,通常我们会首选redis缓存来减轻我们数据库访问压力。但是也会遇到以下这种情况:大量用户来访问我们系统,首先会去查询缓存, 如果缓存中没有数据,则去查询数据库,然后更新数据到缓存
    的头像 发表于 09-25 14:28 581次阅读
    MySQL与<b class='flag-5'>Redis</b>延迟双删<b class='flag-5'>策略</b>

    六种常用串口接口电路图设计

    六种常用串口接口电路图设计。如果你是Win95/98/Me操作系统的话那第1和第2两是最合适的,制作简单。如果是Win2000/XP操作系统的话第3最合适,当然如果你的电脑只有25针串口可以用
    发表于 09-22 06:26

    Redis 的数据清理策略

    本文整理 Redis 的数据清理策略所有代码来自 Redis version :5.0, 不同版本的 Redis 策略可能有调整
    发表于 09-19 14:24 154次阅读
    <b class='flag-5'>Redis</b> 的数据清理<b class='flag-5'>策略</b>

    redis缓存满了怎么办?

    只有在 Redis 的运行内存达到了某个阀值,才会触发内存淘汰机制,这个阀值就是我们设置的最大运行内存,此值在 Redis 的配置文件中可以找到,配置项为 maxmemory。
    发表于 08-21 10:42 171次阅读
    <b class='flag-5'>redis</b>缓存满了怎么办?

    如何排查Redis性能问题 Redis内部实现原理解析

    作为业务开发人员,我们需要了解 Redis 的基本原理,例如各个命令执行的时间复杂度、数据过期策略、数据淘汰策略等,从而更合理地使用 Redis
    发表于 07-05 12:33 181次阅读
    如何排查<b class='flag-5'>Redis</b>性能问题 <b class='flag-5'>Redis</b>内部实现原理解析

    Redis10大性能优化策略

    例如,我的机器配置比较低,当延迟为 2ms 时,我就认为 Redis 变慢了,但是如果你的硬件配置比较高,那么在你的运行环境下,可能延迟是 0.5ms 时就可以认为 Redis 变慢了。
    的头像 发表于 07-04 10:21 281次阅读
    <b class='flag-5'>Redis</b>10大性能优化<b class='flag-5'>策略</b>

    什么是 Redis

      —   1  — 什么是 RedisRedis(REmote DIctionary Service)是一个开源的键值对数据库服务器。 Redis 更准确的描述是一个数据结构服务器。Re
    的头像 发表于 05-22 15:32 640次阅读
    什么是 <b class='flag-5'>Redis</b>