memcached

✍ dations ◷ 2025-07-03 14:39:10 #开放源代码,电脑内存,键-值数据库

memcached是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用。这是一套开放源代码软件,以BSD license授权发布。

memcached缺乏认证以及安全管制,这代表应该将memcached服务器放置在防火墙后。

memcached的API使用三十二比特的循环冗余校验(CRC-32)计算键值后,将数据分散在不同的机器上。当表格满了以后,接下来新增的数据会以LRU机制替换掉。由于memcached通常只是当作缓存系统使用,所以使用memcached的应用程序在写回较慢的系统时(像是后端的数据库)需要额外的代码更新memcached内的数据。

将纯粹使用数据库查询的代码加上memcached支持是很简单的,假设这是原来的代码:

function get_foo (int userid) {   result = db_select("SELECT * FROM users WHERE userid = ?", userid);   return result;}

加上memcached的缓存机制后:

function get_foo (int userid) {    result = memcached_fetch("userrow:" + userid);    if (!result) {        result = db_select("SELECT * FROM users WHERE userid = ?", userid);        memcached_add("userrow:" + userid,  result);    }    return result;}

上述的程序会先到memcached检查是否有userrow:userid的数据,如果有则直接传回结果,如果不存在时再去数据库查询,并将结果放到memcached内。

在memcached内已经有缓存信息时将数据库的数据更新后,上述的程序会抓到旧的数据,这是属于Cache coherency的问题。其中一种解决的方法是在更新数据库时,同时更新memcached内的信息:

相关

  • NMDARN-甲基-D-天门冬胺酸受体(英语:N-methyl-D-aspartate receptor,简称NMDA受体或NMDAR)为麸胺酸盐受体,是一个主要的分子装置,控制突触的可塑性与记忆功能。NMDA受体是一种离子型麸
  • 克鲁什维察克鲁什维察(波兰语:Kruszwica)是波兰的一座城市。至2004年有人口9,412人。坐标:52°41′N 18°18′E / 52.683°N 18.300°E / 52.683; 18.300
  • tvNtvN(Total Variety Network)是CJ E&M所拥有的韩国综合娱乐频道。tvN制作之戏剧近年收视皆于有线电视方面拿下不错的成绩,包括于2012年首度制作日日剧《黄色复仇草》便创下有线
  • 裂缝喷发口裂缝喷发口(英语:Fissure vent),也称为火山裂隙或裂隙喷发,是一个线状的火山口,熔岩能通过它喷发,通常没有任何爆炸活动。喷发口宽往往是几米宽,并且可能长达数公里。裂缝喷发口可能
  • 6-磷酸葡萄糖酸内酯酶6-磷酸葡萄糖酸内酯酶(英语:6-Phosphogluconolactonase)是戊糖磷酸途径过程中的一个酶。它将6-磷酸葡糖酸内酯转变为6-磷酸葡萄糖酸。6-磷酸葡糖酸内酯6-磷酸葡萄糖酸脂酶(胆盐
  • Mg(ClOsub4/sub)sub2/sub高氯酸镁是一种强氧化剂,化学式为Mg(ClO4)2。它可以由氧化镁溶于30%高氯酸制得:反应过程需不断搅拌,分多次缓慢加入氧化镁粉末,缓慢滴加高氯酸溶液,溶液呈弱酸性后停止滴加。然后
  • 玛格丽特二世玛格丽特二世(丹麦语:Hendes Majestæt Dronning Margrethe II,全名为玛格丽特·亞歴山德琳·托希尔杜尔·英格丽德(Margrethe Alexandrine Þórhildur Ingrid),1940年4月16日-)是
  • 胡金龙MLBABLCPBL胡金龙(1984年2月2日-),台湾台南市出生,旅美棒球选手,为台湾第5位升上大联盟的球员,同时也创下大联盟史上首位姓氏字母最少的球员Hu。于2012年年底返国参加中华职棒选秀,
  • 西苏门答腊西苏门答腊省(印尼语:Sumatera Barat)是印度尼西亚的一个省,位于苏门答腊西部,也包括明打威群岛,两者以明打威海峡相隔。面积42,297.30平方公里。首府巴东。下又分另外六市和十二
  • 四大佛教名山中国佛教四大名山,传说是四大菩萨的道场。浙江普陀山是观音菩萨的道场,山西五台山是文殊菩萨的道场,四川峨眉山是普贤菩萨的道场,安徽九华山为地藏菩萨道场。以上四处也合称“四