天增的博客
首页
博客
  • 分布式解决方案
  • Java并发工具包
  • redis
  • LeetCode
  • 系统设计
  • JVM体系
Github (opens new window)
Rss (opens new window)
  • zh-CN
  • en-US
首页
博客
  • 分布式解决方案
  • Java并发工具包
  • redis
  • LeetCode
  • 系统设计
  • JVM体系
Github (opens new window)
Rss (opens new window)
  • zh-CN
  • en-US
  • redis
  • Redis为什么这么快
    • redis单线程的问题
  • Redis基本数据结构
    • String的底层实现
    • List的底层实现
    • Hash的底层实现
    • Set的底层实现
    • ZSet的底层实现
  • Redis分布式缓存
    • 缓存击穿
    • 缓存穿透
    • 缓存雪崩
    • 缓存预热
  • Redis的分布式锁
    • 看门狗模式
    • Redlock
  • Redis集群
    • Redis数据淘汰策略
      • Redis的内存淘汰策略,有以下几种
      • 数据库中有 3000w 的数据,而 Redis 中只有 100w 数据,如何保证 Redis 中存放的都是热点数据
    • redis持久化
    • Redis数据删除策略
  • topic
  • redis
  • Redis集群
  • Redis数据淘汰策略
2022-04-28
目录

Redis数据淘汰策略

# Redis数据淘汰策略

Redis将数据存储在内存中,但是内存有限,当存储的数据超过内存容量时,需要对缓存的数据进行剔除。

淘汰算法一般有以下几种

  • FIFO: 淘汰最早数据
  • LRU: 剔除最近最少使用
  • LFU: 剔除最近使用频率最低的数据

# Redis的内存淘汰策略,有以下几种

  • noeviction: (默认策略) 返回错误。当内存达到限制,客户端尝试执行的命令(大部分的写入指令,但DEL和几个例外)
  • allkeys-lru: 尝试回收最少使用的键(LRU)(适用所有缓存数据,不管是否设置过期时间)
  • volatile-lru: 尝试回收最少使用的键(LRU),(仅限于在过期集合的键)。
  • allkeys-random: 随机回收数据(适用所有缓存数据,不管是否设置过期时间)
  • volatile-random: 随机回收数据(仅限于在过期集合的键)。
  • volatile-ttl: 回收在过期集合的键,并且优先回收存活时间(TTL)较短的键。

# 数据库中有 3000w 的数据,而 Redis 中只有 100w 数据,如何保证 Redis 中存放的都是热点数据

这个题你说它的考点是什么?

考的就是淘汰策略呀,同志们,只是方式比较隐晦而已。

我们先指定淘汰策略为 allkeys-lru 或者 volatile-lru,然后再计算一下 100w 数据大概占用多少内存,根据算出来的内存,限定 Redis 占用的内存。

最近更新
01
以 root 身份启动 transmission-daemon
12-13
02
Debian系统安装qbittorrent-nox
12-09
03
LXC Debain12安装zerotier并实现局域网自动nat转发
07-29
更多文章>
Theme by Vdoing | Copyright © 2015-2024 天增 | 苏ICP备16037388号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式