memcached

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

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

相关

  • 病毒性疾病病毒性疾病(viral disease;viral infection;infectious disease)发生时,生物体被病原体侵入,感染性病毒颗粒附着并进入易感细胞。病毒性疾病通常通过临床表现来检测,例如发烧前的严
  • 树鼩目 Scandentia树鼩目(学名:Scandentia),又称攀兽目,生活在东南亚的热带雨林中,有2科5属20种。树鼩目成员的外形像松鼠,但吻尖而长。树鼩目成员的齿分化不明显。树鼩目曾经被置于食虫目与灵长目,树
  • 杏仁豆腐杏仁豆腐是一种传统的夏季北京小吃,因形似豆腐而得名。做法是用甜杏仁磨浆后加水煮沸,盛于碗内冷藏,使之自然凝结。食用时切成小块,略加糖水和金瓜条即可。味甜,清爽,略带杏仁味,起
  • 战斧行动纳粹德国阿奇博尔德·韦维尔 涅欧·贝瑞斯福-皮尔斯969人伤亡 91辆战车 36架飞机约678人伤亡 12辆战车 10架飞机战斧行动(英语:Operation Battleaxe)是英军在1941年6月第二
  • 国家科学技术奖中国政府为了奖励在科技进步活动中作出突出贡献的公民,推动中国科技事业的发展,国务院设立五个国家科学技术奖。包括国家最高科学技术奖、国家自然科学奖、国家技术发明奖、国
  • 将其围歼考彭斯战役(Battle of Cowpens)是一场美国革命军决定性的胜利,美军在丹尼尔·摩根准将率领下击败了伯纳斯特·塔尔顿的军队。该场战役是南方战场的一部分。这场战役扭转了战局,
  • 秆锈病秆锈病,又称柄锈病、麦锈病、黑锈病,是由真菌锈菌(学名:)所引发的疾病,以谷类作物为感染大宗。小麦的秆锈传染病则是由名为“”的变种秆锈菌所引起,这种秆锈菌普遍在非洲、亚洲蔓延
  • 1900年美国人口普查1900年美国人口普查(英语:1900 United States Census)是美国历史上第12次全国人口普查,确定了美国的常住人口为75,994,575人,相比1890年美国人口普查,同比增长为21.0%。1900年的人
  • 克劳修斯定理克劳修斯定理(英语:Clausius theorem)也称为克劳修斯不等式(英语:Clausius Inequality),全称克劳修斯积分不等式。是德国科学家鲁道夫·克劳修斯在1855年提出的热力学不等式,描述在
  • 龟咯坐标:1°19′37″N 103°26′46″E / 1.32687°N 103.4460022°E / 1.32687; 103.4460022龟咯(马来语:Kukup)是马来西亚柔佛州笨珍县的一个渔村。它以露天海鲜餐厅而闻名于世,水