OCS支持新命令:GAT(getAndTouch)以及flush

 

基于用户的反馈和需求,OCS近日新增加了对两个Memcached命令的支持:GAT(getAndTouch)以及flush。

 

首先来看GAT(getAndTouch)命令。它能够在获取数据的同时更新该数据的过期时间,其用法为:getAndTouch(String key, int newExpTime)

 

这个命令不属于标准Memcached协议中定义的操作,但是在用户使用中,却有着一定的实际意义。通过使用该命令,我们可以更合理有效地利用OCS的缓存空间,使缓存里始终存储的都是真正的热点数据。目前JAVA SPY和JAVA XMEMCACHED客户端已经支持此命令。

 

Java程序示例片段如下:

 

         mc.set(“myKey”, 5, “value”);//将数据首次set进OCS

        while (true) {

           //在取回该数据的同时,将其过期时间更新为2秒后

           System.out.println(“GAT:” + mc.getAndTouch(“myKey”, 2));

          //暂停半秒。模拟在实际业务中,此数据每隔半秒被访问一次

          Thread.sleep(500);

     }

在上述代码中可以看见,每次通过getAndTouch读取数据的同时都更新了它的过期时间为2秒后。所以当该数据被频繁访问时(2秒之内被不断访问),它将始终不过期;在实际业务使用中,如果该数据的访问频率降低(2秒之内没有被访问),它将会自动过期被淘汰出OCS缓存。

 

另外一个为flush命令。它属于Memcached标准协议定义的操作,各主流客户端支持此命令。该命令的功能是清除用户当前的OCS缓存实例内所有的数据及统计信息。之前OCS用户是通过在控制台上点击“清空缓存”按钮来实现此功能,现在则可以通过命令方式实现。用法也非常简单:ocs_cache.flush()即可。

 

在实现上,OCS与Memcached一样,flush命令是将所有数据标识为expired,并不会真正的立刻释放已有数据的内存,而是用存入的新数据重用那些内存,逐步清理缓存中原有过期数据。需要指出的是,OCS完成此命令的时间精度约为1秒以内。在使用中需要注意如下情况:

ocs_cache.flush();

ocs_cache.set(“key”, 0, “value”);

ocs_cache.get(“key”); //这里可能返回NOT FOUND

在这个例子中,第二行set命令执行的时间点和第一行flush命令在同一个自然秒内,则该数据可能会被flush清理,以至于第三行的get无法取得该数据。这种情况需要在程序中注意避免。

 

时间: 2024-12-28 10:10:20

OCS支持新命令:GAT(getAndTouch)以及flush的相关文章

Redis集群Proxy支持select命令方案介绍

目前Redis集群开源的方案主要有Redis Cluster,Codis,Twemproxy等,这几个方案里面都不支持select命令,即用户无法使用select进行逻辑db的切换,这样会给之前使用Redis单机的用户带来一定困扰,导致很多用户在迁移到集群方案的时候需要改造代码,本文探讨Redis集群支持select命令的方案实现. 阿里云Redis集群 阿里云的redis集群版由3大组件构成: redis-config : 集群管理工具 redis-server : 优化过源码的redis,支

身份证号码验证-支持新的带x身份证

//--身份证号码验证-支持新的带x身份证function isIdCardNo(num) {    var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);    var error;    var varArray = new Array();    var intValue;    var lngProduct = 0;    var intCheckDigit;    var intStrLen = num.len

HDFS命令行客户端使用,命令行客户端支持的命令参数,常用命令参数介绍

3.HDFS的shell(命令行客户端)操作 3.1HDFS命令行客户端使用 HDFS提供shell命令行客户端,使用方法如下: [toto@hadoop hadoop-2.8.0]$ hdfs dfs -ls /     (推荐使用这种方式,hdfs现在这种是最新的一种方式) Found 4 items drwxr-xr-x   - toto supergroup          0 2017-05-29 14:01 /findbugs-1.3.9 drwxr-xr-x   - toto s

《影响中国大数据产业进程100人》 刘冬冬: 数据如何来支持新的商业战争

前言:   大数据是一个事关我国经济社会发展全局的战略性产业,大数据技术为社会经济活动提供决策依据,提高各个领域的运行效率,提升整个社会经济的集约化程度,对于我国经济发展转型具有重要的推动作用!2016年,由网加时代网发起并承办,北京大学信息化与信息管理研究中心.中国新一代IT产业推进联盟协办的"影响中国大数据产业进程100人"大型人物专访活动全面启动,被采访对象分别来自官.产.学.研.企各个领域,他们将从不同角度,不同层面向大家阐述当前大数据产业热点.难点.疑点问题,为中国大数据产业

刘新华:支持新媒体参与资本市场建设

中国证监会副主席刘新华(新浪科技配图) 发挥新媒体的传播优势,提升公信力,推动资本市场稳定健康发展 证券时报记者 贾壮 中国证监会副主席刘新华昨日在京出席"2011年新浪金麒麟论坛"时表示,证监会始终高度重视新媒体在资本市场中的作用,近年来积极围绕加强市场透明度建设的目标,发挥新媒体的传播优势,在拓展舆论传播渠道等方面进行了有益探索.总体上看,对新媒体传播的研究和应用仍处于探索阶段,证监会将一如既往地欢迎和支持新媒体参与资本市场建设,积极探索和加强新媒体与监管机构.市场主体之间的良性互

SolarCity筹资3.45亿美元支持新光伏项目

7月18日,美国SolarCity公司宣布在2016年6月份和7月份,已从四个合作伙伴筹集3.45亿美元税收股权,以支持新的太阳能光伏(PV)项目. 此次融资包括新型太阳能光伏设备和装置的资金成本. 现有债务融资增长1.1亿美元 SolarCity除了筹集3.45亿美元资金之外,还将其现有债务融资扩大至7.6亿美元,增长1.1亿美元. SolarCity还增加了两个新的贷款人,占据1.1亿美元新增债务融资的7000万美元. SolarCity还扩大太阳能可再生能源信用积分(SREC)融资,接受五

简单谈谈PowerShell 4.0中的新命令_PowerShell

随着PowerShell 3.0和Windows Server 2012版本的发布,微软提升了Windows PowerShell的功能,在PowerShell 4.0和Windows Server 2012 R2版本发布时,微软还会继续添加新功能和改善已有功能.本文中,我们盘点了PowerShell 4.0中的十个新命令. Save-Help Get-Help是PowerShell入门级命令.Get-Member帮助获取内容,你可以用它查看另一个PowerShell对象的属性和方法.Power

js 身份证号码验证-支持新的带x身份证

js 身份证号码验证-支持新的带x身份证 function isidcardno(sid){  var acity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江&qu

农商行将成银行上市第四梯队继续支持新农村建设

农商行上市,促进建立现代金融企业制度. 作为我国农村金融体系的主力军,农商行为什么要积极谋求上市? 正如中国银监会副主席蒋定之所指出的那样,农村商业银行追求上市,目的就是要促进建立现代金融企业制度. 从农商行目前的发展现状看,脱胎于农村信用社的农商行显然在公司治理等方面离现代金融企业制度相距甚远.而根据全国农村中小金融机构监管工作会议制定的目标,到2010年,农村中小金融机构要力争实现现代金融企业制度的初步建立,管理体制顺畅有效,公司治理明显进步,竞争能力大幅提升,支农作用全面发挥,主要监管指标