失业中。。。 没有着急找工走,不会的太多,太多了。这是我从代码随想录跟着卡哥学习C++的小项目,也许是我的C++水平太菜了,也许是我的算法能力太差,或者说这么多年来我只是一个“伪程序员”的角色,这个小小的项目,我照着敲代码足足弄了一周,看了好几遍博客,才搞明白。
这是一个缓存是将高频访问的数据暂存到内存中,是加速数据访问的存储,降低延迟,提高吞吐率的利器
常见的有FIFO、LRU、LFU、ARC等,FIFO这里不做介绍
我的项目开发环境是Linux,推荐一个好的 开发平台sealos,这是一个用k8s打造的云操作系统,注册实名制会获得十块钱余额
以LRU算法为例,它是用了两个数据结构,一个hash表,一个双向列表
LRU:https://blog.csdn.net/saxon_li/article/details/123974696
1 | // 前向声明 |
当热点数据较多时,有较高的命中率,但是如果有偶发性的批量操作,会使得热点数据被非热点数据挤出容器,使得缓存受到了“污染”。LRU-k 是对LRU算法一种改进,LRU就相当于LRU-1
参考:https://juejin.cn/post/6844904049263771662
1 | // LRU优化:Lru-k版本。 通过继承的方式进行再优化 |
该项目粒度比较大,可以将lur分片,
参考:https://github.com/songangweb/mcache/tree/master
1 | // lru优化:对lru进行分片,提高高并发使用的性能 |
其实掌握LRU原理,足以应付面试,平常的工作,以下有篇很好的博文介绍LFU算法
https://blog.csdn.net/saxon_li/article/details/123985667
卡哥的: GitHub有完整的代码
https://github.com/youngyangyang04/KamaCache
- 本文作者: 东方觉主
- 本文链接: http://www.charon193.com/2025/02/02/ChacheCp/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!