memcached

✍ dations ◷ 2025-11-14 16:52:17 #开放源代码,电脑内存,键-值数据库

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

相关

  • 凯格尔运动凯格尔运动(英语:Kegel exercise),又称骨盆运动(英语:pelvic floor exercise),于1948年由美国阿诺·凯格尔医生公布,借由重复缩放部分的骨盆底(英语:Pelvic floor)肌肉进行,用以帮助怀孕
  • 光反应光合作用是植物、藻类等生产者和某些细菌,利用光能把二氧化碳、水或硫化氢变成碳水化合物的过程。可分为产氧光合作用和不产氧光合作用。植物之所以称为食物链的生产者,是因为
  • 鼷鹿科鼷鹿科(学名:Tragulidae),是一类小型的哺乳纲偶蹄目动物,它们是反刍亚目下最原始的成员。鼷鹿属主要分布于东南亚地区,水鼷鹿属分布在非洲的热带森林中。鼷鹿类仅有3胃室,反刍能力
  • 波多黎各总督波多黎各总督 (英语:Governor of Puerto Rico;西班牙语:Gobernador de Puerto Rico),为波多黎各政府的行政首脑,也是波多黎各国民警卫队的总司令。1948年至今,波多黎各总督皆由公民
  • 收听证明卡QSL卡,也叫收听证明卡,是业余电台及广播电台(短波、中波)特有的一种确认联络或收听的凭证;通俗地说,就是业余无线电爱好者(HAM)与广播爱好者(BCL)收集的一种“证明自己收听到了某个电
  • 悬河悬河又称地上河,即河床高出两岸地面的河流。悬河形成的原因是:含沙量很大的河流,在两岸河谷开阔、比较平缓的河段,泥沙大量堆积,河床不断抬高,水位也相应上升。为防止水害的发生,两
  • 无叶莲科无叶莲科(学名:Petrosaviaceae)也叫樱井草科,是无叶莲目(Petrosaviales)的唯一科,只包括2属—无叶莲属()和尾濑草属()共4种,分布在中国、日本和东南亚岛屿一带。1981年的克朗奎斯特分类
  • 罗马剧场罗马剧场(Roman theatre)是指古罗马时期修建的半圆形剧场。罗马剧场受到了古希腊剧场的很大影响,但也有自己的特征。罗马剧场分布在从西班牙至中东的广大地区,且世界很多地方都
  • 威廉·拉姆齐威廉·拉姆齐爵士,KCB(英语:Sir William Ramsay,1852年10月2日-1916年7月23日),英国化学家,1904年诺贝尔化学奖获得者。威廉·拉姆齐1852年出生于格拉斯哥。其叔父安德鲁·拉姆齐(英
  • avastavast!是位于捷克布拉格的AVAST Software a.s.(英语:AVAST Software a.s.)(旧称ALWIL Software a.s.)于1988年首次发行的杀毒软件,软件名取自“Anti-Virus-Advanced-Set”,即“高级