当前位置: 首页 > news >正文

青岛网站设计定制西安微信网站制作

青岛网站设计定制,西安微信网站制作,知名品牌设计公司,工业设计网站导航Redis 内存淘汰策略详解 一、简介Redis内存管理问题 二、内存淘汰策略1.为什么需要内存淘汰策略2.内存淘汰策略分类#xff08;1#xff09;noeviction#xff08;2#xff09;allkeys-lru#xff08;3#xff09;allkeys-lfu#xff08;4#xff09;volatile-lru… Redis 内存淘汰策略详解 一、简介Redis内存管理问题 二、内存淘汰策略1.为什么需要内存淘汰策略2.内存淘汰策略分类1noeviction2allkeys-lru3allkeys-lfu4volatile-lru5volatile-lfu6volatile-ttl 三、策略详解noevictionallkeys-lruvolatile-lruallkeys-randomvolatile-randomvolatile-ttlvolatile-lfuLFU 最少频繁使用算法LRU 最近最少使用算法 四、如何选择适合的内存淘汰策略内存淘汰策略选择时需要考虑的因素系统的容忍度缓存数据的重要性内存使用情况业务场景 如何根据业务场景来选择合适的内存淘汰策略noeviction 策略volatile-lru 策略volatile-ttl 策略allkeys-lru 策略 一、简介 Redis Redis 是一款高性能的非关系型数据库它支持多种数据结构如字符串、哈希、列表、集合、有序集合和 HyperLogLog。Redis 可以用于缓存、消息队列、应用程序中的数据结构存储等场景它的优点是响应速度快、支持丰富的数据结构和扩展性好。 内存管理问题 Redis 将所有数据都存储在内存中因此内存管理就成为了 Redis 中需要解决的一个重要问题。当 Redis 的内存使用达到最大内存限制时Redis 将无法再接受写请求并根据内存淘汰策略淘汰一部分数据腾出内存。 二、内存淘汰策略 1.为什么需要内存淘汰策略 当 Redis 内存使用达到最大内存限制时如果继续进行写入操作会导致 Redis 服务崩溃。因此为了保证 Redis 服务的稳定性Redis 在内存使用达到最大限制时采取一系列措施如内存淘汰、警告等。 2.内存淘汰策略分类 Redis 内存淘汰策略主要有 6 种 1noeviction 不执行任何的淘汰策略直接返回错误信息。这种方式可能导致内存使用过多而导致 Redis 崩溃。 2allkeys-lru 从所有的键中选取最近最少使用的数据淘汰。这种方式通常可以保留热点数据但是可能会出现内存碎片导致内存浪费。 3allkeys-lfu 从所有的键中选取访问频率最少的数据进行淘汰。这种方式适用于处理访问分布相对均匀的数据。 4volatile-lru 只从设定了过期时间ttl的键中选取最近最少使用的数据淘汰。这种方式适用于缓存等使用场景。 5volatile-lfu 只从设定了过期时间ttl的键中选取访问频率最少的数据进行淘汰。 6volatile-ttl 只从设定了过期时间ttl的键中选取即将过期的数据进行淘汰。这种方式适用于缓存等使用场景。 三、策略详解 在 Redis 中为了防止内存溢出在内存不足以容纳更多数据时Redis 会通过内存淘汰策略来淘汰一些键值对以便给新的键值对腾出空间。下面我们将详细介绍 Redis 支持的内存淘汰策略。 noeviction 这是 Redis 的默认策略这意味着当内存满了时任何写操作如 SETHSET 等都会返回一个错误这种情况下需要管理员手动清除一些键值对或者增加内存才能继续进行写操作。 allkeys-lru 该策略会针对所有的键使用 LRU最近最少使用算法来淘汰键值对。对于 Redis 的所有键按照最近最少使用的原则优先淘汰那些最近没有使用或很久没有使用的键值对。 # 配置为 allkeys-lru 策略 maxmemory-policy allkeys-lruvolatile-lru 在这种模式下Redis 会选择过期时间较近的键来淘汰。如果一个键设置了过期时间并且距离过期时间较远那么 Redis 不会考虑淘汰该键值对。相反如果一个键离过期时间只有很短的一段时间那么 Redis 会优先淘汰该键值对。 # 配置为 volatile-lru 策略 maxmemory-policy volatile-lruallkeys-random 在这种模式下Redis 会随机地淘汰一些键值对重点考虑键值对的访问频率以及键空间。 # 配置为 allkeys-random 策略 maxmemory-policy allkeys-randomvolatile-random 同 allkeys-random 模式类似但它只针对开启过期时间的键空间进行淘汰。 # 配置为 volatile-random 策略 maxmemory-policy volatile-randomvolatile-ttl 在这种模式下Redis 会选择最接近超时的键来淘汰。它与 volatile-lru 类似不同之处在于它侧重于超时的键而非最近最少使用的键。 # 配置为 volatile-ttl 策略 maxmemory-policy volatile-ttlvolatile-lfu 该策略中采用的是 LFU最不常用算法。Redis 会优先淘汰使用频率最少的键值对。 # 配置为 volatile-lfu 策略 maxmemory-policy volatile-lfuLFU 最少频繁使用算法 除了 volatile-lfu 策略的支持以外Redis 还支持使用 LFU 算法的淘汰策略。这种策略适用于需要使用最少频繁使用算法淘汰键值对的场景。 # 配置为 LFU 策略 maxmemory-policy lfuLRU 最近最少使用算法 除了 allkeys-lru 和 volatile-lru 策略以外Redis 还支持使用 LRU 算法的淘汰策略。这种策略适用于需要使用最近最少使用算法淘汰键值对的场景。 # 配置为 LRU 策略 maxmemory-policy lru四、如何选择适合的内存淘汰策略 在使用 Redis 时为了保持系统运行的稳定性和性能我们需要针对不同的业务场景选择适合的内存淘汰策略。下面将介绍在进行策略选择时需要考虑的因素以及如何根据业务场景来选择合适的内存淘汰策略。 内存淘汰策略选择时需要考虑的因素 系统的容忍度 系统的容忍度是指当前系统中可容忍的缓存数据被淘汰的数量。当系统的容忍度较高时我们可以采用一些较激进的淘汰策略例如 noeviction 策略或 volatile-lru 策略。当系统的容忍度较低时则需要选择一些保守的淘汰策略。 缓存数据的重要性 对于不同的缓存数据其重要性也是不同的。例如某些缓存数据可能对应着用户的个人信息或者是支付订单等重要信息这些数据就需要采用较为严格的淘汰策略进行保护。而对于一些只是用于辅助计算的缓存数据则可以采用较为宽松的淘汰策略。 内存使用情况 当内存使用情况较为充足时我们可以适当采用一些较为激进的淘汰策略来提升系统的性能。而当内存使用情况较为紧张时则需要选择一些较为保守的淘汰策略保证系统的稳定运行。 业务场景 不同的业务场景对于淘汰策略的要求也是不同的。例如对于一些缓存的数据是需要长时间保存的此时我们就需要选择一些长期使用率较高的策略进行淘汰。而对于一些需要频繁更新或者只需要用于临时计算的数据则可以采用一些比较激进的策略。 如何根据业务场景来选择合适的内存淘汰策略 noeviction 策略 该策略是 Redis 默认的淘汰策略其特点是不对缓存数据进行淘汰当 Redis 内存达到限制时会导致写操作失败。该策略适用于系统中的大部分数据都是必须不可缺少、不能删除的情况。通常我们也会针对这种情况进行缓存穿透和雪崩的处理。 # 在 Redis 配置文件中添加以下配置 maxmemory-policy noevictionvolatile-lru 策略 该策略会淘汰掉最近最少使用Least Recently Used的带有过期时间的缓存数据。在对于缓存数据有较为明确的过期时间限制并且对于历史数据使用的概率相对较小的情况下可以采用该策略。 # 在 Redis 配置文件中添加以下配置 maxmemory-policy volatile-lru maxmemory 4mbvolatile-ttl 策略 该策略会淘汰掉剩余时间最短的缓存数据通常适合缓存数据过期时间比较接近或者过期时间比较难估计的场景。 # 在 Redis 配置文件中添加以下配置 maxmemory-policy volatile-ttl maxmemory 4mballkeys-lru 策略 该策略会淘汰掉最近最少使用的所有缓存数据适合对缓存数据淘汰没有任何限制而且服务的数据模式和访问频度难以预测无法确定是热点访问或者是冷访问的情况。 # 在 Redis 配置文件中添加以下配置 maxmemory-policy allkeys-lru maxmemory 4mb
http://www.hkea.cn/news/14559886/

相关文章:

  • 怎么做中英文版网站网页查询系统
  • 沈阳电力建设总公司网站常熟做网站多少钱
  • 住房和城乡建设部中国建造师网站住房和城乡建设部资质延期
  • 伊川网站开发ps软件下载手机版
  • 网站流程示意前端开发面试题
  • 中国城乡住房建设厅网站首页wordpress move导入
  • 营销型网站建设目的建设培训中心网站
  • php是做网站还是网页wordpress电影网站模板
  • 中文企业网站模板免费下载建设网站写需求分析报告
  • 做定制网站多少钱唐山自助建站
  • 网站设计怎么做链接大兴58网站起名网站制作
  • 制作h5免费平台保定关键词优化平台
  • 网站的建设技术有哪些内容一般网站建设用什么语言
  • 一个网站建设大概需要多少费用系统开发需要的技术
  • 网站建设手机端官网做导购网站需要多大的服务器
  • 大连免费网站建设软件开发各阶段工作量比例
  • 廊坊app网站制作网站建设费用 优帮云
  • 水产网站源码外链群发平台
  • 嘉兴建站模板系统北京做网站比较好的公司
  • 广州网站建站平台WordPress评论ajax提交
  • 吕梁市城乡建设局网站重庆公司网站设计制作
  • 有效的网站建设公遵义在线读者板留言
  • 网站开发技术是仿豆瓣WordPress主题
  • 湘潭做网站 磐石网络怎么才能注册做网站
  • 高稳定性的网站设计制作wordpress可以做电影站
  • 网站页脚模板猎头公司属于什么行业
  • 松滋网站定制网站排名优化原理
  • 织带东莞网站建设技术支持龙岩kk网
  • 网站备案公司上海人才网官网登录
  • 绍兴公司网站建设济南公司做网站