Memcached简介

 Memcached是什么?

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

  Memcached由Danga Interactive开发,用于提升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

  采用memcached网站演示:

  http://blog.lyxcf.com/5864.lyxcf

使用memcached 方法 package com.war.common.util; import com.danga.MemCached.*; import java.util.Date; public class MemCached { protected static MemCachedClient mcc; protected static Logger log; protected static MemCached memCached = new MemCached(); protected MemCached() { } public static MemCached getInstance() { return memCached; } public boolean add(String key, Object value) { return mcc.add(key, value); } public boolean add(String key, Object value, Date expiry) { return mcc.add(key, value, expiry); } public boolean replace(String key, Object value) { return mcc.replace(key, value); } public boolean replace(String key, Object value, Date expiry) { return mcc.replace(key, value, expiry); } public boolean delete(String key) { return mcc.delete(key); } public boolean delete(String key, Date expiry) { return mcc.delete(key, expiry); } public boolean keyExists(String key) { return mcc.keyExists(key); } public Object get(String key) { return mcc.get(key); } static { mcc = new MemCachedClient(); String servers[] = { "127.0.0.1:11211" }; Integer weights[] = { new Integer(3) }; SockIOPool pool = SockIOPool.getInstance(); pool.setServers(servers); pool.setWeights(weights); pool.setInitConn(5); pool.setMinConn(5); pool.setMaxConn(250); pool.setMaxIdle(0x1499700L); pool.setMaintSleep(30L); pool.setNagle(false); pool.setSocketTO(3000); pool.setSocketConnectTO(0); pool.initialize(); // mcc.setCompressEnable(true); // mcc.setCompressThreshold(0x10000L); mcc.set_compress_enable(true); mcc.set_compress_threshold(0); } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值