memcached配置と使用

3500 ワード

memcachedは有名な分散型メモリオブジェクトキャッシュシステムとして、高性能、無料、オープンソースの特徴があり、インターネットアプリケーションでは、ウェブダイナミックアプリケーションの応答を加速し、データベースの負荷を軽減します.
memcachedの実現メカニズムはK-Vであり、Map容器機構と類似している.
Windows環境ダウンロード:
1.memcachedのwindowsバージョン、住所はhttp://code.jellycan.com/memcached/この例はmemcached-1.2.6-win 32-bin.zipを使用します.2.memcachedサービスを開始する
memcached.exe-d installmemcached.exe-d start 3.javaクライアント:https://github.com/gwhalin/Memcached-Java-Client/downloads 
java_memcached-release_2.6.6.zipはjavaの接続クライアントです. ファイルを解凍して、中のjarカバンをプロジェクトのlibディレクトリの下にコピーします.
Linux環境ダウンロード:
 
(1)libeventの設置
(ap-get installの:libeventは認識されていないようです)
ダウンロード  http://www.monkey.org/~provos/libevent-2.02-stable.tar.gz
libeven-2.2.02-stable$configure
libeven-2.2.1.12-stable$make
libeven-2.011-stable$sudo make install
(2)memcachedの取り付け
インストールmemcached 1.4.5をダウンロードします.    
http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz
memcached-1.4.5米ドル/configure
memcached-1.4.5$make
memcached-1.4.5$sudo make install
起動に失敗したら、libeventが見つからなかったら、接続してください.
/usr/lib$sudo ln-s/local/lib/libeven-2.0.so.5 libeven-2.0.so.5
(3)起動
$memcached
 
/**
 * Description          ,            
 * @author Administrator
 * 2012-10-16
 */
class User implements Serializable{
	/**
	 * 
	 */
	private static final long serialVersionUID = -7969334018970422840L;
	
	public String userName;
	public String password;
}

public class MemcachedTest {
	
	static{
		//       
		String[] servers = {"127.0.0.1:11211", "127.0.0.2:11212"};
        //         
        SockIOPool pool = SockIOPool.getInstance();  
        //         
        pool.setServers(servers);  
        //        ,     ,               
        pool.setInitConn(50);  
        pool.setMinConn(50);  
        pool.setMaxConn(500);  
        pool.setMaxIdle(1000 * 60 * 60);  
        //         , 3     ,         
        //maintSleep        30,         ,     ,  30000  。  
        pool.setMaintSleep(3000);  
        //         
        pool.setNagle(false);  
        //            
        pool.setSocketTO(3000);  
        //            
        pool.setSocketConnectTO(0);  
        //        
        pool.initialize();  
	}

	public static void main(String[] args) throws IOException {
		MemCachedClient c = new MemCachedClient();

		//       Integer
		// Store a value (async) for one hour
		c.set("someKey", new Integer(4), 3600);
		// Retrieve a value (synchronously).
		Object myObject = c.get("someKey");
		Integer result = (Integer) myObject;
		System.out.println(result);
		
		//          
		System.out.println("      :" + System.currentTimeMillis());
		
		User user1 = new User();
		user1.userName = "ZhangSan";
		user1.password = "alongpasswordhere";
		c.set("user1", user1, 3600);
		
		System.out.println("      :" + System.currentTimeMillis());
		
		User myUser1 = (User)(c.get("user1"));
		System.out.println(myUser1.userName + " " + myUser1.password);
		
		System.out.println("      :" + System.currentTimeMillis());
	}
	
}