[缓存] 单机缓存和预热机制

参考博客:https://blog.csdn.net/as02446418/article/details/47913387

缓存的作用:

对于读操作,将热点数据放在内存中,提高响应速度,减少对低速设备的访问。

对于写操作,将数据放在缓冲区(一般为磁盘块大小的倍数),缓冲区满后再写入磁盘,减少访问数量。

1.单机缓存

包括硬件带来的缓存机制(如磁盘缓存),和系统维护的缓存区。

1)硬盘缓存

这里指在硬盘上单独的DRAM单元,由磁盘驱动维护缓存。一般不能修改,只是用于提高读写性能和减少读写次数。

2)系统缓存

包括:内核态的IO缓存、用户态的应用程序缓存、物理设备(如网卡)的缓存。

读取或写入数据时,先将数据写入用户态缓存,然后flush拷贝到内核态的IO缓存,由OS定期或根据策略写入外设。

也可以把内核态的IO缓存看作System cache。

2.冷热数据

当使用redis、elastic search等中间件时,无法把所有数据全部保存在内存中。因此需要对数据进行冷热分级。

即将常常访问的数据作为热数据,放在内存中,将不常常访问的数据作为冷数据,保存在磁盘中。当然有些大型的NAS架构有更多级,如温数据等。

然后需要设置某种机制决定缓存的清除策略。https://www.cnblogs.com/cheungilin/articles/15464971.html

3.数据预热

某些数据虽然目前没有受到大量访问,但可以预计它将是热点数据(例如淘宝首页的信息)。

因此需要让这些数据常驻在内存中,不受清除策略的影响。

1)设置后台程序,每隔一段时间自行访问标定数据,使得这些数据被刷入到System cache。

2)索引分离,对于ES,可以将热点数据从原本的索引中单独拆分,避免保存的数据过大。

posted @ 2022-02-21 16:13  Cheung-10  阅读(2)  评论(0)    收藏  举报