memcached

✍ dations ◷ 2025-02-23 20:12:14 #开放源代码,电脑内存,键-值数据库

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

相关

  • 蜱螨亚纲以及text蜱螨亚纲(Acari)是节肢动物蛛形纲下的一个分类元,原为蜱螨目(Acarina),现时升格成为一个亚纲。本分类元有30,000左右的物种,包括了蜱、螨、盲蛛、疥瞒、恙螨、寄螨等物种
  • 低钾血症4s12,8,8,1蒸气压第一:418.8 kJ·mol−1 第二:3052 kJ·mol−1 第三:4420 kJ·mol−1 (主条目:钾的同位素钾(拉丁语:Kalium,化学符号:K)是原子序数为19的化学元素。最早于植物的灰烬
  • 俱毗罗俱毗罗(梵语:कुबेर,Kubera,印地语:कुबेर ,泰米尔语: குபேரன்),后期梵语及巴利语称为俱吠罗(Kuvera),接近于当代汉音“孤贝拉”或“孤卫拉”,印度神话中夜叉族,掌管财富,
  • 印地安美洲原住民,是对美洲所有原住民的总称。美洲原住民中的绝大多数为印第安人,剩下的则是主要位于北美洲北部的因纽特人。美洲原住民属于东亚人种美洲支系,与现代东亚人有共同的祖
  • 吴中伦吴中伦(1913年8月29日-1995年5月12日),浙江诸暨人,林学家、森林地理学家。1940年毕业于金陵大学农学院林学系。1946至1950年赴美留学,取得耶鲁大学硕士学位、杜克大学林学博士学位
  • 古拉语古拉人种(Gullah)是一群说着克里奥尔语的非裔美国人。古拉人是非洲奴隶的后裔。他们曾生活于海岛及南卡罗尼亚州、乔治亚州及北佛罗里达州。在乔治亚州,常常被称呼为Geechees。
  • 贝拉米沃尔特·琼斯·贝拉米(英语:Walter Jones Bellamy,1939年7月24日-2013年11月2日),美国NBA前职业篮球运动员,场上位置为中锋或大前锋,身高2.11米。贝拉米出生于北卡罗来纳州New Bern,1
  • 文索基特 (罗德岛州)坐标:42°00′30″N 71°30′58″W / 42.00833°N 71.51611°W / 42.00833; -71.51611文索基特(英语:Woonsocket)是美国罗德岛州普罗维登斯县的一个城市。临布拉克斯东河,面积20.
  • 联盟1号联盟1号(俄语:Союз 1)苏联第三代载人航天计划联盟计划所发射的第一艘实际载有乘员的宇宙飞船。该飞船的设备故障导致了一场严重的航天事故,宇航员科马洛夫在事故中牺牲。联
  • 计算机支持的协同工作计算机支持的协同工作(Computer Supported Cooperative Work,缩写为CSCW)最早由美国麻省理工的Irene Greif和迪吉多(DEC)的Paul Cashman在1984年提出的。于1984年由麻省理工学院