memcached

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

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

相关

  • 意大利力量党意大利力量党(意大利语:Forza Italia,简称FI)是意大利的一个已不存在的右翼自由保守主义政党。2009年,并入自由人民党。党魁是西尔维奥·贝卢斯科尼。于1993年12月成立,1994年1月1
  • 碳端C端(亦作C-端,英语:C-terminus),又称碳端、羧基端,指多肽链具有游离的α羧基的末端。在翻译过程中,多肽链是从N端往C端合成的,因而在书写多肽序列时,从N端开始书写,从左到右写到C端。
  • 放血疗法放血是将人的血液放出,以治疗、预防或者诊断疾病的替代医学疗法。放血在西方和中东的理论基础是古代医学的体液学说系统。该系统认为如果体液在人体内失去平衡,则会导致疾病。
  • 学校体育体育(英语:Physical Education,缩写P.E.)是一项在小学、中学和大学中开展的教学活动,旨在促进参与者在身体活动的过程中获得身心全面发展。在不同国家学校体育教学的任务及目标存
  • 东哥特王国东哥特王国(英文:The Ostrogothic Kingdom,489年-553年),是日耳曼民族的一支——东哥特人(Ostrogoths)建立的国家。随着东哥特人在西罗马帝国灭亡后迁入意大利,东哥特王国的势力约在
  • 温莎-梅登黑德温莎-梅登黑德(英语:Windsor and Maidenhead),全称 温莎-梅登黑德皇家自治市镇(Royal Borough of Windsor and Maidenhead),是英国英格兰东南区域的二级行政区(区级),拥有单一管理区、
  • ICD-10 第二十章:疾病和死亡的外因ICD-10 第二十章:疾病和死亡的外因,即国际疾病与相关健康问题统计分类第十版的第二十个编码分系统(从V01-Y99),其中包括了各种关于疾病及死亡的外在原因,及其分类详情。
  • 博茨瓦纳华人博茨瓦纳华人是指在非洲国家博茨瓦纳的华侨华人,2009年时,总人数约为5至6千。主要分布在首都哈博罗内和第二大城市弗朗西斯敦。
  • 夜间飞行 (2014年电影)《夜间飞行》(韩语:야간비행)是一部于2014年8月28日上映的韩国剧情片 ,由李宋喜一(朝鲜语:이송희일)(이송희일)编写剧本及导演,并由演员郭时阳与李在濬主演。
  • 超速传动超速传动是一种传动部件,常用于后轮驱动汽车,让行驶车辆得到极高的齿轮传动比以获得高速的巡航能力,同时在较低扭矩的情况下节省燃料。“超速传动”一词也可以指传动系统中通过