memcached

✍ dations ◷ 2025-11-18 22:32:19 #开放源代码,电脑内存,键-值数据库

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内的信息:

相关

  • 脑血管障壁脑血管障壁(英语:blood–brain barrier ,BBB),也称为血脑屏障或血脑障壁,指在血管和脑之间有一种选择性地阻止某些物质由血液进入大脑的“屏障”。19世纪末,保罗·埃尔利希在一个实
  • 椴树属椴树属(学名:Tilia)植物统称椴树,属于锦葵目锦葵科椴树亚科,旧时分类于椴树科(Tiliaceae)或田麻科。椴树是落叶乔木,高可达30米,直径可达1米;单叶互生,常有星状毛或单毛,有锯齿或缺齿,通
  • span class=nowrapVOSOsub4/sub/span硫酸氧钒(IV),VOSO4,是钒的一个常见无机化合物。以三水合物和五水合物最为常见,而六水合物仅在13.6°C下存在。市售品的则未指定结晶水含量。这种极易潮解的蓝色固体是实验室中
  • 台湾文献馆国史馆台湾文献馆(简称台湾文献馆)是中华民国政府维护与保存台湾相关史政文献的专责机构,前身为台湾省政府设置的“台湾省文献委员会”,精省后改为现名并成为国史馆唯一的附属机
  • WFIRST大视场红外巡天望远镜(英语:Wide Field Infrared Survey Telescope,WFIRST)是美国国家航空航天局开发的红外空间望远镜。2010年,它被美国国家科学研究委员会十年巡天委员会列为未
  • 生命系统理论生命系统理论是关于所有生命系统的存在及其结构、交互、行为和发展的一般理论。这项工作是由James Grier Miller开创,其目的是使生命概念形成固定的体系。据Miller在他的代表
  • 让-雅克·阿诺让-雅克·阿诺(法语:Jean-Jacques Annaud,1943年10月1日-),法国电影导演、电影制作人和编剧。澳门科技大学电影学院名誉院长。1943年,阿诺出生在法国法兰西岛大区埃松省奥尔日河畔
  • 素拉育·朱拉暖素拉育·朱拉暖(泰语:สุรยุทธ จุลานนท์,皇家转写:Surayut Chulanon;1943年8月28日-),1943年出生于泰国佛丕府,曾任陆军总司令,退役后担任泰国枢密院大臣。2006年10月1
  • 沃伦·比蒂亨利·沃伦·比蒂(英语:Henry Warren Beatty,1937年3月30日-),美国演员、导演、编剧和制片人。他曾经获得奥斯卡奖和金球奖。2002年,美国电影学会授予比蒂戈登·E·索耶奖。2004年,
  • 无政府主义与马克思主义无政府主义与马克思主义是产生于19世纪的两种类似的政治哲学。虽然无政府主义与马克思主义都是由内部冲突驱动的复杂的运动,作为两种意识形态的运动,二者都将其注意力主要集中