[DB 了解数据库设计思路] 缓存篇-LRU算法

LRU 算法: 最近最少使用算法
具体案例方面

在 Mysql innoDB 5.6版本以后引入了 缓存池这个配置 。

InnoDB维护一个称为缓冲池的内存存储区域 ,用于缓存内存中的数据和索引。了解InnoDB缓冲池的工作原理,并利用它来保存内存中经常访问的数据,这是MySQL调优的一个重要方面。
LRU算法有以下的标准算法:

1)3/8的list信息是作为old list,这些信息是被驱逐的对象。

2)list的中点就是我们所谓的old list头部和new list尾部的连接点,相当于一个界限。

3)新数据的读入首先会插入到old list的头部。

4)如果是old list的数据被访问到了,这个页信息就会变成new list,变成young page,就会将数据页信息移动到new sublist的头部。

5)在数据库的buffer pool里面,不管是new sublist还是old sublist的数据如果不会被访问到,最后都会被移动到list的尾部作为牺牲者。

在学习 Redis 缓存淘汰中同样也存在 LRU(默认配置)

链表 + hash表实现
当某个key被访问到了,程序通过哈希表迅速定位节点,并将该节点调整至链表最开始位置
当链表满了 就会淘汰掉最末尾的key

Mybatis 的二级缓存中也有LRU

操作系统中也存在 LRU

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值