memcached简介

来源:互联网 发布:linux下查看进程的方法 编辑:程序博客网 时间:2024/06/09 23:39

  Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。但是它并不提供冗余(例如,复制其hashmap条目);当某个服务器S停止运行或崩溃了,所有存放在S上的键/值对都将丢失。

  Memcached由Danga Interactive开发,其最新版本发布于2010年,作者为Anatoly Vorobey和Brad Fitzpatrick。用于提升LiveJournal.com访问速度的。LJ每秒动态页面访问量几千次,用户700万。Memcached将数据库负载大幅度降低,更好的分配资源,更快速访问。

  如何使用memcached-Server端?

  在服务端运行:

  # ./memcached -d -m 2048 -l 10.0.0.40 -p 11211

  这将会启动一个占用2G内存的进程,并打开11211端口用于接收请求。由于32位系统只能处理4G内存的寻址,所以在大于4G内存使用PAE的32位服务器上可以运行2-3个进程,并在不同端口进行监听。

  如何使用memcached-Client端?

  在应用端包含一个用于描述Client的Class后,就可以直接使用,非常简单。

  PHP Example:

  $options["servers"] = array("192.168.1.41:11211", "192.168.1.42:11212");

  $options["debug"] = false;

  $memc = new MemCachedClient($options);

  $myarr = array("one","two", 3);

  $memc->set("key_one", $myarr);

  $val = $memc->get("key_one");

  print $val[0]."/n"; // prints 'one‘

  print $val[1]."/n"; // prints 'two‘

  print $val[2]."/n"; // prints 3