memcached

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

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

相关

  • 导引图导引图是一种引导思考途径的关系式图像式思考辅助工具,指示事件发生的先后次序,含有逻辑上的判断(包含前提及结论)。
  • 眼药水眼药水是治疗眼睛疾病的药水,其成分依作用的不同有许多种类,例如类固醇、抗生素、抗组织胺药、 β阻滞剂、非类固醇消炎止痛药等。一般眼药水为了长期保存而添加了微量的防腐
  • 叶绿素 a叶绿素是存在于植物、藻类和蓝藻中的光合色素。光合作用的第一步是光能被叶绿素吸收并将叶绿素离子化。产生的化学能被暂时储存在三磷酸腺苷(ATP)中,并最终将二氧化碳和水转
  • 浮华世界《名利场》(Vanity Fair: A Novel without a Hero)是英国小说家威廉·梅克比斯·萨克雷的讽刺小说,于1847年出版,并曾多次改编成电影与电视剧,生性狡诈虚荣的女主人翁利蓓加·夏
  • 利尔·皮普古斯塔夫·伊莱贾·奥尔(Gustav Elijah Åhr,1996年11月1日-2017年11月15日),艺名利尔·皮普(Lil Peep),是美国一名饶舌歌手和歌手。他被认为是引领后情绪摇滚复兴的重要艺术家之一,
  • 李临秋李临秋(1909年-1979年),是一位出身日治台湾台北的流行音乐作词者,最有名的作品为《望春风》。李临秋父亲本为富商,后因故家道中落。1924年,李临秋受亲戚介绍进入永乐町永乐座戏院担
  • 卢加诺卢加诺(意大利语:Lugano,意大利语发音:;德语:Lauis)是瑞士提契诺州的一个意大利语区城市,也是最南端的城市。人口63.583(2015年10月),面积26.2平方公里,是瑞士第九大城市,也是提契诺州最
  • 陈江华陈江华(1989年3月12日-),广东番禺人,中国篮球运动员,司职控球后卫。曾效力中国篮球职业联赛的广东华南虎篮球俱乐部。出生于广东省番禺县沙湾(今广州市番禺区沙湾街道涌口村)。在200
  • 人民协商会议印度尼西亚共和国人民协商会议(印尼语:Majelis Permusyawaratan Rakyat Republik Indonesia,MPR)是印度尼西亚的立法机关。人民协商会议实行两院制,由人民代表会议和地方代表理事
  • 伊斯兰教与政治伊斯兰教政治的相关理念多采用古兰经以及圣训中的思想。伊斯兰教所宣传人权的根据,是真主启示的经典《古兰经》。