Lru 就是个  最少使用的算法,不是最少使用,他的名字就叫  ‘最少使用算法’。原理就是除了原本的数据之外,我另外维护一个dict或者是list,专门用来做排序,我每次get的时候,维护的那个dict里面key的value 加1 。你懂的。 


用途,一般在于数据的缓存,在一定范围内,可以确保数据的鲜活度,经常用的数据和刚刚进来的数据,是保留的,去除的往往是有段时间没用了。  可以省内存的空间,在python下使用的话,内存可以回收的。  

话说,哥们现在对python的gc内存回收很是敏感,上次的问题到了,是MySQLdb的一个问题,但是…..。还是无法解决,只能是把那段逻辑fork出去,然后kill,不让main thread 看到这样的麻烦事。 


关于lru的代码已经提交到: https://github.com/rfyiamcool/pyLruCache ,有兴趣的朋友自己看看。 

另外我也push到pypi站点了,大家直接 pip install pyLruCache  安装 。 

这个文章的原文是在 http://blog.xiaorui.cc ,我的文章总是被爬来爬去的。

注:  我一年前发布的几个项目,一个是websocket监控相关的,一个是ipmitool的python封装。 但是今天在pypi找不到了,貌似是被干掉了,也有可能是名字我记错了。翻看了下邮件没有给我回复啥信息。 感觉应该不会删除才对。 留个截图为证。 



和Lru类似的还有别的一些对于缓存的算法,比如LFU、MRU  。 



对Python及运维开发感兴趣的朋友可以加QQ群 : 478476595 !!!
{ 2000人qq大群内有各厂大牛,常组织线上分享及沙龙,对高性能及分布式场景感兴趣同学欢迎加入该QQ群 }

另外如果大家觉得文章对你有些作用!   帮忙点击广告. 一来能刺激我写博客的欲望,二来好维护云主机的费用.
如果想赏钱,可以用微信扫描下面的二维码. 另外再次标注博客原地址  xiaorui.cc  ……   感谢!
暂无相关产品

3则回应给“python实现最少使用算法lru包括dict和list队列”

  1. killer说道:

    pypi有时候会删掉一些无意义得项目

  2. orangleliu说道:

    搞爬虫不错,这么多新东西。

  3. orangleliu说道:

    有点高深,咋办?

发表评论