memcached的LRU删除机制前篇

原创 2015年07月07日 14:57:58


前言:当memcached中有100bytes的数据要存,但是122大小的仓库中chunk满了。并不会寻找更大的仓库去存储,而是把122仓库的旧数据T掉,这就是数据过期与删除机制。

1.  当某个值过期之后,并没有从内存中删除,在使用stats命令时,发现curr_items 依然存在。只是当你去get,取数据的时候为空,才会删除,然后在查看stats,显示正确的curr_items。也就是没有get数据,将不会删除。




10s之后查看:




然后get一下:




查看:




好处:节省了CPU时间和检测的成本。

2. 操作系统常用的机制

LRU 最近最少用

FIFO 先进先出

        FIFO置换算法性能之所以较差,是因为它所依据的条件是各个页面调入内存的时间,而页面调入的先后并不能反映页面的使用情况。最近最久未使用(LRU)置换算法,是根据页面调入内存后的使用情况进行决策的。由于无法预测各页面将来的使用情况,只能利用“最近的过去”作为“最近的将来”的近似,因此,LRU置换算法是选择最近最久未使用的页面予以淘汰。该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间t,,当须淘汰一个页面时,选择现有页面中其t值最大的,即最近最久未使用的页面予以淘汰。

 

深入理解memcached,高并发、懒惰与LRU(一)

1. Memcached如何支持高并发         Memcached使用多路复用I/O模型。传统阻塞I/O中,系统可能随时因为某个用户连接还没做好I/O准备而一直等待,知道这个连接做好准备。如果...
  • u012675743
  • u012675743
  • 2015年07月07日 15:03
  • 2840

Memcached之你真正理解LRU吗(4)

众所周知,Memcached使用的是LRU(Least Recently Used最近最少使用)算法来回收缓存,将那些属于LRU的数据移出内存,从而腾出空间来加载另外的数据。那么Memcached的最...
  • qianshangding0708
  • qianshangding0708
  • 2015年08月25日 21:58
  • 4257

Memcache遍历 获取模糊匹配key对应的记录

memcached只能通过get查找指定的key,而没有提供key的所有查找和key的模糊查找。 模糊查找原理:先拿到memcache服务器里面的全部cache记录,遍历所有的记录(模糊查找:过滤自己...
  • guugle2010
  • guugle2010
  • 2014年10月18日 15:28
  • 5733

Memcache存储大数据的问题、的删除机制LRU

memcache删除机制LRU Lazy Expiration memcached内部不会监视记录是否过期,而是在get时查看记录的时间戳,检查记录是否过期。这种技术被称为lazy(惰性)...
  • a_haoGG
  • a_haoGG
  • 2017年05月26日 10:59
  • 521

深入理解memcached,高并发、懒惰与LRU(一)

转载,原文 http://blog.csdn.net/u012675743/article/details/46789695 深入理解memcached,高并发、懒惰与LRU(一) 1...
  • y19910825
  • y19910825
  • 2016年12月08日 11:09
  • 293

memcached LRU队列状态转换

我们假设memcached开启了 lru_maintainer_thread线程,这时将使用HOT_LRU, WARM_LRU, COLD_LRU, NOEXP_LRU四种队列。 1. 从内存池中...
  • mdj67887500
  • mdj67887500
  • 2015年07月28日 21:20
  • 889

谈谈 Memcached LRU

Memcached 还有大量空闲空间,却发生 LRU,到底是什么原因导致的?从内存的结构,从内存的分配,来看懂为什么......
  • wenniuwuren
  • wenniuwuren
  • 2016年06月21日 15:24
  • 2438

memcached源码分析-----item过期失效处理以及LRU爬虫

转载:http://blog.csdn.net/luotuo44/article/details/42963793    温馨提示:本文用到了一些可以在启动memcached设置的全局变量。...
  • shmnh
  • shmnh
  • 2017年02月12日 16:17
  • 211

memcached源码分析-----LRU队列与item结构体

转载请注明出处: LRU队列:         之前的《slab内存分配》博文已经说到一个slab class里面的所有slab分配器都只分配相同大小的item,不同的slab class...
  • luotuo44
  • luotuo44
  • 2015年01月19日 09:46
  • 4418

memcached源码分析-----item过期失效处理以及LRU爬虫

转载请注明出处:         温馨提示:本文用到了一些可以在启动memcached设置的全局变量。关于这些全局变量的含义可以参考《memcached启动参数详解》。对于这些全局变量,处...
  • luotuo44
  • luotuo44
  • 2015年01月21日 09:46
  • 4257
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:memcached的LRU删除机制前篇
举报原因:
原因补充:

(最多只允许输入30个字)