memcached

✍ dations ◷ 2025-11-26 04:06:45 #开放源代码,电脑内存,键-值数据库

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

相关

  • 长链非编码RNA长链非编码核糖核酸(英语:long non-coding RNAs,简称为lncRNA)指的是长于200核苷酸的不编码蛋白质的转录物(Perkel 2013)。该有些武断的界定将长链非编码核糖核酸与较小的调控核糖
  • 漆器漆器是一种用生漆涂敷在器物胎体表面作为保护膜制成的工艺品或生活用品。漆器早在新石器时代至商代就已出现。表面被涂过漆的胎体经过反复多次的髹涂后,不仅坚固耐用,多样的装
  • 罗德里克·麦金农罗德里克·麦金农(英语:Roderick MacKinnon,1956年2月19日-),美国洛克菲勒大学分子神经生物学和生物物理学教授。因对细胞膜中的离子通道功能的物理化学属性的研究,尤其是X射线晶体
  • 五营神五营神将,或称五营将军、五营元帅、五营神军、五营兵马、五营旗等,简称五营,是台湾汉人民间信仰中,保护庙境或村庄的重要护法神。五营分为“东营军-青旗(青龙)”、“南营军-红旗(朱雀
  • ATARU《ATARU》,是2012年TBS的电视剧,由中居正广主演,初回延长20分(21:00 - 22:14)。一名罹患学者症候群的特殊能力自闭儿又真实身份不明的青年-ATARU常在事件现场中协助警察破案,随着剧
  • 设立圣餐日濯足节(拉丁语:Dies Cenae Domini、天主教旧称“建定圣体瞻礼”,意大利语:Giovedì Santo、意思是“神圣星期四”)为复活节前的星期四,乃基督教(广义)纪念耶稣基督最后的晚餐,设立了
  • 爱德华王子岛爱德华王子岛省(英语:Prince Edward Island;法语:Île-du-Prince-Édouard;苏格兰盖尔语:Eilean a' Phrionns或Eilean Eòin;米克马克语:Apekweit或Epikwetk),简称爱省,也常被简称为皮
  • 蛞蝓.mw-parser-output ruby.zy{text-align:justify;text-justify:none}.mw-parser-output ruby.zy>rp{user-select:none}.mw-parser-output ruby.zy>rt{font-feature-settings:
  • 斑臭鼬属西部斑臭鼬 Spilogale gracilis 东部斑臭鼬 Spilogale putorius 小斑臭鼬 Spilogale pygmaea Spilogale angustifrons斑臭鼬属(学名Spilogale),臭鼬科的一属,包括三到四种,分布于
  • 雀尾螳螂虾蝉形齿指虾蛄(学名:Odontodactylus scyllarus),又名雀尾螳螂虾(译自英文名:Peacock mantis shrimp)、纹华青龙虾,为齿指虾蛄科齿指虾蛄属下的一个种,主要分布于印度尼西亚巴里岛附近