ubuntu memcached安装和java中memcached使用demo

如果没有安装libevent,先安装

(1) 安装libevent

(apt-get install的:libevent好像没有被认出来)

下载  http://www.monkey.org/~provos/libevent-2.0.12-stable.tar.gz

libevent-2.0.12-stable$configure

libevent-2.0.12-stable$make

libevent-2.0.12-stable$sudo make install

 

(2)安装memcached

下载安装memcached1.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 /usr/local/lib/libevent-2.0.so.5 libevent-2.0.so.5

 

(3)启动

$memcached -d -m 128 -p 11111 -u root

这里需要说明一下memcached服务的启动参数:
-p 监听的端口
-l 连接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u 以的身份运行 (仅在以root运行的时候有效)
-m 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25-n 最小分配空间,key+value+flags默认是48
-h 显示帮助2)安装Memcache客户端 


4.例子

下载jar包,引入项目中:http://cloud.github.com/downloads/gwhalin/Memcached-Java-Client/java_memcached-release_2.5.3.jar

import java.util.Date;
import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;

public class MemcachedTest {
	// 创建全局的唯一实例
	protected static MemCachedClient mcc = new MemCachedClient();

	protected static MemcachedTest memCached = new MemcachedTest();

	// 设置与缓存服务器的连接池
	static {
		// 服务器列表和其权重
		String[] servers = { "127.0.0.1:11111" };
		Integer[] weights = { 3 };

		// 获取socke连接池的实例对象
		SockIOPool pool = SockIOPool.getInstance();

		// 设置服务器信息
		pool.setServers( servers );
		pool.setWeights( weights );

		// 设置初始连接数、最小和最大连接数以及最大处理时间
		pool.setInitConn( 5 );
		pool.setMinConn( 5 );
		pool.setMaxConn( 250 );
		pool.setMaxIdle( 1000 * 60 * 60 * 6 );

		// 设置主线程的睡眠时间
		pool.setMaintSleep( 30 );

		// 设置TCP的参数,连接超时等
		pool.setNagle( false );
		pool.setSocketTO( 3000 );
		pool.setSocketConnectTO( 0 );

		// 初始化连接池
		pool.initialize();

		// 压缩设置,超过指定大小(单位为K)的数据都会被压缩
		mcc.setCompressEnable( true );
		mcc.setCompressThreshold( 64 * 1024 );
	}

	/**
	 * 保护型构造方法,不允许实例化!
	 *
	 */
	protected MemcachedTest()
	{

	}

	/**
	 * 获取唯一实例.
	 * @return
	 */
	public static MemcachedTest getInstance()
	{
		return memCached;
	}

	/**
	 * 添加一个指定的值到缓存中.
	 * @param key
	 * @param value
	 * @return
	 */
	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 exists(String key){
		return mcc.keyExists(key);
	}

	/**
	 * 根据指定的关键字获取对象.
	 * @param key
	 * @return
	 */
	 public Object get(String key)
	 {
		 return mcc.get(key);
	 }

	 public static void main(String[] args)
	 {
		 MemcachedTest cache = MemcachedTest.getInstance();
		 long startDate=System.currentTimeMillis();
		 for (int i = 0; i < 100; i++) {
			 cache.add("test"+i, "我爱你中国"+i);
		 }
		 long endDate=System.currentTimeMillis();
		 long nowDate=(endDate-startDate)/1000;
		 System.out.println(nowDate);
		 System.out.print( " get value : " + cache.get( "test99" ));
	 }
}



你可能感兴趣的:(ubuntu memcached安装和java中memcached使用demo)