常见的缓存算法设计策略
2016-06-27 22:00
204 查看
对于缓存,大家应该都不会感到陌生,但是关于缓存算法有哪些,大家可能不会太清楚,这里我大概介绍下。
缓存的设计目的就是为了我们访问方便,减少访问时间,大体上有这四种策略:
一:基于时间的策略。当缓存未满的时候,一直向缓存区添加,当缓存区满的时候,再有数据进来,就需要将以访问过的数据清除掉。
清除的就是那些访问时间久的数据。说白了就是访问时间距离现在越远的将首先被淘汰。
二:基于频率的策略。当缓冲区满的时候,按照访问频率将数据进行排序,将那些访问频率较少的数据淘汰掉。
三:基于时间和频率的策略。当缓冲区满的时候,兼顾访问时间和访问频率来选择要淘汰那些数据,具体的协调比例可以自定义,根据不同的环境来合理确定。
四:基于未来的策略。当缓冲区满的时候,根据访问频率和其他的一些历史经验,来推断未来哪些数据可能不再使用,然后淘汰这些数据。
这就是设计缓存算法所遵循的基本策略,各有优缺点,我们应该根据自己的环境来是定的选择,甚至可以结合起来使用。
以上就是我的见解,欢迎读者补充!
缓存的设计目的就是为了我们访问方便,减少访问时间,大体上有这四种策略:
一:基于时间的策略。当缓存未满的时候,一直向缓存区添加,当缓存区满的时候,再有数据进来,就需要将以访问过的数据清除掉。
清除的就是那些访问时间久的数据。说白了就是访问时间距离现在越远的将首先被淘汰。
二:基于频率的策略。当缓冲区满的时候,按照访问频率将数据进行排序,将那些访问频率较少的数据淘汰掉。
三:基于时间和频率的策略。当缓冲区满的时候,兼顾访问时间和访问频率来选择要淘汰那些数据,具体的协调比例可以自定义,根据不同的环境来合理确定。
四:基于未来的策略。当缓冲区满的时候,根据访问频率和其他的一些历史经验,来推断未来哪些数据可能不再使用,然后淘汰这些数据。
这就是设计缓存算法所遵循的基本策略,各有优缺点,我们应该根据自己的环境来是定的选择,甚至可以结合起来使用。
以上就是我的见解,欢迎读者补充!
相关文章推荐
- 页面缓存:内存和文件之间的那些事
- 浅析SQL Server中的执行计划缓存(上)
- Enterprise Library for .NET Framework 2.0缓存使用实例
- PowerShell中编程清空IE缓存方法
- PowerShell中使用.NET将程序集加入全局程序集缓存
- C#中缓存的基本用法总结
- Android实现图片异步加载并缓存到本地
- wap开发中如何有效的利用缓存减少消息的传送量
- PHP基于文件存储实现缓存的方法
- smarty缓存用法分析
- 在ASP.NET 2.0中操作数据之五十九:使用SQL缓存依赖项SqlCacheDependency
- 在ASP.NET 2.0中操作数据之五十八:在程序启动阶段缓存数据
- 在ASP.NET 2.0中操作数据之五十七:在分层架构中缓存数据
- 引用全局程序集缓存内的程序集的方法
- asp Response.flush 实时显示进度
- C#实现清除IE浏览器缓存的方法
- ASP.NET缓存管理的几种方法
- PHP文件缓存类实现代码
- 清除aspx页面缓存的程序实现方法
- C#缓存之SqlCacheDependency用法实例总结