memcached

✍ dations ◷ 2025-05-18 20:00:08 #开放源代码,电脑内存,键-值数据库

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

相关

  • 重大创伤损害,是伦理及法律概念。伯纳德·格特(英语:Bernard Gert)将损害包括:
  • 加兰他敏加兰他敏(商品名Razadyne、Reminyl等),用于治疗轻度至中度阿尔茨海默病和各种其他记忆障碍导致的认知衰退。 它是一种已从Galanthus caucasicus(高加索雪莲)、Galanthus woronowi
  • 让·佩兰让·巴蒂斯特·佩兰(法语:Jean Baptiste Perrin,1870年9月30日-1942年4月17日),法国物理学家,生于法国里尔。1926年诺贝尔物理学奖获得者。让·巴蒂斯特·佩兰出生于法国 里尔,读过
  • 穆拉比特穆拉比特王朝(柏柏尔语:ⵉⵎⵕⴰⴱⴹⴻⵏImṛabḍen;阿拉伯语:المرابطون‎ Al-Murābiṭūn),是11世纪由来自撒哈拉的柏柏尔人在西非所建立的王朝。“穆拉比特”一名来自
  • 维多利亚公园维多利亚公园 (Victoria Park,又称Vicky Park或People's Park)是位于伦敦东部的一个公园,公开区域面积86.18公顷。维多利亚公园公开于1845年,在2012年、2014年和2015年连续获得英
  • 科连特斯坐标:27°29′S 58°49′W / 27.483°S 58.817°W / -27.483; -58.817 科连特斯(西班牙语:Corrientes)位于阿根廷东北部巴拉那河畔,邻近巴拉圭边境,是科连特斯省的首府,人口328,689
  • 瓦戈纳瓦戈纳县(Wagoner County, Oklahoma)是美国俄克拉荷马州东部的一个县。面积1,531平方公里。根据美国2010年人口普查,共有人口73085人。县治瓦戈纳(英语:Wagoner, Oklahoma)。成立
  • 荷兰语正写法荷兰语正写法(荷兰语:Nederlandse spelling),简称荷兰文,是一套以拉丁字母为基础,制定出适合用于拼写荷兰语的正写法。该拼写系统由政府以法令颁布,对所有政府文件和教育机构皆具强
  • 山部山部,为汉字索引里为部首之一,康熙字典214个部首中的第四十六个(三划的则为第十七个)。就繁体和简体中文中,山部归于三划部首。山部通常是从上、下、左方均可为部字,且无其他部首
  • 褶曲褶曲作用是由横压力形成,使地层中的沉积岩产生褶曲隆起,形成褶曲山脉;同时如果沉积岩受挤断裂,会形成逆断层或逆掩断层。定义:水平岩层受横向压力挤压而造成起伏, 实例:台湾太鲁阁