memcached

✍ dations ◷ 2024-12-22 21:11:39 #开放源代码,电脑内存,键-值数据库

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

相关

  • 传粉授粉(传粉)指的是裸子植物和显花植物的雄性配子,即花粉,从花药被传到雌蕊的柱头,使雌性配子受精的过程。超过80%的有花植物靠生物 (例如蜜蜂、蝴蝶、果蝠)传播花粉,其余则靠风 (例如
  • 奥斯塔谷瓦莱达奥斯塔(意大利语:Valle d'Aosta,法语:Vallée d'Aoste;阿皮坦语:Vâl d'Aoûta,Valle意为山谷)是意大利西北部的一个多山的大区,也是意大利面积最小的大区,面积3,263平方公里,人
  • 中华民国国家航天中心name = 'Aero', description = '航空太空科技(航空航天科技)', content = {{ type = 'text', text = [=[本页面没有类似于NoteTA的数量限制。 请自行修改分类名。在NoteTA样板
  • 甘油脱氢酶甘油脱氢酶(英语:glycerol dehydrogenase,EC 1.1.1.6)是一种以NAD+或NADP+为受体、作用于供体CH-OH基团上的氧化还原酶。这种酶能催化以下酶促反应:甘油脱氢酶主要参与甘油脂的代
  • 1068年
  • 松本俊一松本俊一(1897年6月7日-1987年1月25日),日本昭和时代外交官、政治人物。生于台湾台北,在广岛县吴市长大。1921年从东京帝国大学法学部毕业后,进入外务省工作。1945年3月9日下午6时
  • 象鼻虫见内文象鼻虫,也叫象虫、象甲、象甲虫,是鞘翅目中种类最多的一种,更是昆虫中种类最多的一群,全世界已知种类达六万多种,生长过程属于完全变态。此种昆虫的吻突很长,有如大象之象鼻
  • 张前东张前东(1966年10月-),四川省营山县人,中国共产党党员,原重庆鱼田堡煤矿103队队长。2002年6月13日,鱼田堡煤矿西侧的刘家河河床突然塌陷,导致鱼田堡煤矿被水淹没,张前东在井下经过7个
  • 多足类多足亚门(或称多足类、多足纲,学名Myriapoda,来自古希腊语μυριάς一万和πούς脚、腿),是节肢动物门下的一类,包含了马陆及蜈蚣等。多足类有超过13000个物种,都是陆地动物。
  • 加拿大国家公园加拿大国家公园 Canadian National Parks 位于班夫国家公园的Mount Chephren与Waterfowl Lake 绿色为加拿大国家公园的分布位置坐标:51°29′48.65″N 115°55′41.00″W / 5