memcached

✍ dations ◷ 2025-12-01 01:04:41 #开放源代码,电脑内存,键-值数据库

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

相关

  • 热力学热力学,全称热动力学(法语:thermodynamique,德语:Thermodynamik,英语:thermodynamics,源于古希腊语θερμός及δύναμις),是研究热现象中物态转变和能量转换规律的学科。它着
  • 卢照邻卢照邻(634年?-689年),字升之,号幽忧子,幽州范阳(今河北省涿州市)人,唐朝诗人,后因久病厌世,投水死。他与王勃、杨炯和骆宾王一起被称为“初唐四杰”。卢照邻出自范阳卢氏北祖,是东汉侍中
  • 平阳公主平阳公主可以指以下人物:
  • 明王明王(梵语:vidyā-rāja),又作金刚明王、持明王、忿怒尊、威怒王,是佛陀、菩萨的忿怒化身(教令轮身),密宗修行者经常以明王为本尊,以修行天瑜伽。女性明王称为明妃,通常是明王的伴侣。
  • 溶血性 (微生物学)溶血性(Hemolysis,来自希腊文αιμόλυση)指的是红血球的被破坏现象,分为α、β、γ三种。溶血现象通常由微生物引起;在实验室里,以血基琼脂培养皿培养,能分辨出不同溶血性
  • 福伊尔福伊尔(英语:Foyle),英国国会一郡选区,包括北爱尔兰德里区一部。创设于1983年。2008年德里区一部被转到东伦敦德里选区。选区以福伊尔河命名,是为了避免亲英和亲爱选民之间对伦敦
  • 北方海峡萨利希语北方海峡萨利希语支是萨利希语系的一个分支,包括了下列各个方言:虽然以上这些方言都是相互意思疏通,但各种方言在传统上均被当作不同的语言处理,而且相互之间并没有一个各种语言
  • 黑暗网站黑暗网站(英语:Dark web)多简称为暗网,是存在于黑暗网络、覆盖网络上的万维网内容,只能用特殊软件、特殊授权、或对电脑做特殊设置才能访问。暗网是由深网的一小部分所构成的。而
  • 卡塔通博闪电卡塔通博闪电(西班牙语:Relámpago del Catatumbo)是一种发生在委内瑞拉的特殊大气现象,指的是在卡塔通博河注入马拉开波湖处周围的一小块沼泽地区频繁发生闪电的现象。这一地区
  • 胡美 (医生)胡美(Edward Hicks Hume,1876年5月13日-1957年2月9日),美国传教医师、医学教育家。胡美出生于印度艾哈迈德讷格尔,其父亲与祖父都是在印度的传教士。他于1897年毕业于耶鲁大学并获