memcached的LRU删除机制前篇

前言:当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值最大的,即最近最久未使用的页面予以淘汰。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-29 20:16:01

memcached的LRU删除机制前篇的相关文章

[转]memcached提高命中率,memcached server LRU 深入分析

Memcached,人所皆知的remote distribute cache(不知道的可以javaeye一下下,或者google一下下,或者baidu一下下,但是鉴于baidu的排名商业味道太浓(从最近得某某事件可以看出),所以还是建议javaeye一下下),使用起来也非常的简单,它被用在了很多网站上面,几乎很少有大型的网站不会使用memcached. 曾经我也看过很多剖析memcached内部机制的文章,有一点收获,但是看过之后又忘记了,而且没有什么深刻的概念,但是最近我遇到一个问题,这个问题

javamail模拟邮箱功能--邮件删除-中级实战篇【邮件标记方法】(javamail API电子邮件实例)

前言: JavaMail jar包下载地址:http://java.sun.com/products/javamail/downloads/index.html 本章可能是讲解javamail的最后一篇了,上次更新完查看方法后,本打算周末更新的,没想今天周五挺闲,就地正法算了...就赶紧再下班前写完了.阅读本章节前建议阅读之前章节,因为这章是在之前的基础上增加的业务方法,不看之前的可能有点云里雾里.  点我前往 邮件标志:是指给邮件message对象设置一个Flag内部类里的属性字段,标志类型会

探究redis和memcached的 LRU算法--------redis的LRU的实现

一直对这redis和memcached的两个开源缓存系统的LRU算法感兴趣.今天就打算总结一下这两个LRU算法的实现和区别. 首先要知道什么是LRU算法:LRU是Least Recently Used 近期最少使用算法.相关的资料网上一大堆.http://en.wikipedia.org/wiki/Cache_algorithms#LRU   redis的六种策略 rewriteConfigEnumOption(state,"maxmemory-policy",server.maxme

AAA功能部署和测试----麒麟开源堡垒机功能篇之二

AAA服务器在网络管理方面主要用于服务器.网络设备的认证,比如我们常用的CISCO ACS系统,通过 AAA服务器可以把登录设备的帐号统一到AAA系统上进行管理! 另外AAA系统还可以授权记帐,TACACS协议可以限制用户登录设备的级别.可执行的命令,但是RADIUS协议只能限制用户登录的级别,RADIUS协议没有CMD属性,无法限制命令. 堡垒机一般又叫小4A,是集认证.授权.审计.分析与一体的安全设备,我前期测试过多个厂商的堡垒机部分堡垒机有3A功能,这样的好处是可以把网络设备的帐号集中管理

Linux虚机设备篇

对虚机设备Bridge ,Vlan, VETH, TAP详细介绍 LInux Vlan虚拟设备通信的详细介绍 Linux iptables详细介绍

(一)Memcached初学教程之安装服务篇(Windows下)

1.下载Memcached的Windows服务安装程序(备注:memcached官网:http://memcached.org/ ,没有提供windows下的安装包,只有UNIX下的安装包,我们这里用的是别人给Windows写的Memcached的安装包,可以在网上找到.): 安装包很小,几百KB,有32位的和64位的 ,X64是64位的,x86是32位的,, 2.安装步骤,很简单: cmd中定位到 memcached.exe所在的位置, 输入命令:  memcached.exe -d inst

Android 异步消息处理机制前篇(二):深入理解Message消息池

上一篇中共同探讨了ThreadLocal,这篇我们一起看下常提到的Message消息池到底是怎么回事,废话少说吧,进入正题. 对于稍有经验的开发人员来说我们在使用Handler发送异步消息获取Message的时候都会使用如下代码获取一个Message对象: 1 Message msg = mHandler.obtainMessage(); 而不是直接new一个: 1 Message msg = new Message(); 二者的主要区别就是上面的用到缓存池概念,如果池中有闲着的则拿来用,没有则

使用电脑adb给Essential Phone刷机 —(官方篇)

用ADB给Essential Phone线刷升级 重要:请确保在刷机前已经解锁,关于解锁教程群里有! 准备 原版boot Twrp boot Magisk卡刷包 到官网下载OTA包 准备好Essential Phone的adb环境或到群里下载紫妈工具箱 (已准备好的话跳过下面这两步) 获取资源 获取原版boot 解压官方fastboot包,找到解压出来的文件夹,找到boot.img 获取twrp boot 点击提取码:asp2下载Twrp, 将下载好的文件改名为 twrp 下载Magisk 点击

利用jenkins+svn进行项目自动部署(本机自动篇)

测试环境:centos6.5_x64 java jenkins svn+apache tomcat 实现目的: 利用jenkins实现,当svn有代码更新时,Jenkins自动将代码更新到tomcat应用目录下,并重启tomcat生效 第一步:环境搭建 svn+apache安装: tomcat安装:(不多说) jenkins安装,直接将war包放入tomcat的webapps目录下运行即可,官网下载 wget 启动后输入http://ip:port/jenkins到如下界面,即安装成功 第二步: