关于缓存原理的简单介绍

关于缓存:

数据库的数据存储于文件系统,性能相对有限,对于一些高并发和高性能的需求,我们需要缓存,将需要比较频繁读取数据存储于内存中,应用从内存获取数据,满足高并发和高性能的开发需求。

缓存的数据淘汰策略:

应用需要的数据正好处于缓存中,即命中缓存。缓存有一定容量限制,如果应用需要的数据没有命中缓存,而缓存已经达到最大容量,则需要淘汰部分缓存数据。缓存常用的数据淘汰策略,有以下几种。

FIFO

如果一个数据最先进入缓存中,则应该最早淘汰掉。

  1. 利用一个链式队列保存数据

  2. 当来了新的数据之后便添加到链式队列末尾

  3. 如果缓存存满数据,则将链式队列头部数据删除

  4. 新的数据添加至链式队列末尾

  5. 如果想提高访问效率,可以利用HashMap来保存每个key在链式队列中对应的位置。

LFU

淘汰访问频率最低的数据

  1. 利用一个链式队列保存数据,以访问次数为排序。

  2. 新加入数据插入到队列尾部(因为仅访问一次,访问次数最低);

  3. 队列中的数据被访问后,访问次数增加1,队列会重新排序;

  4. 当需要淘汰数据时,将已经排序的队列最后的数据删除。

LRU

淘汰最长时间未被使用的数据

  1. 利用一个链表保存数据;

  2. 新数据插入到链表头部;

  3. 每当命中缓存,则将数据移到链表头部;

  4. 当链表满的时候,将链表尾部的数据丢弃。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值