Memcache 初体验

1:下载安装

wget http://memcached.org/files/memcached-1.4.20.tar.gz


依赖库

wget http://cloud.github.com/downloads/libevent/libevent/libevent-2.0.17-stable.tar.gz


2:启动memcached


 /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid

-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,
-u是运行Memcache的用户,我这里是root,
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.200,
-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,

想开机自动启动的话,只需在/etc/rc.d/rc.local中加入一行,上面命令
有人用以下命令:
/usr/local/memcached/bin/memcached -d -m 20 -p 11211 -u apache
上面有些东西可以参考一下:即,ip不指定时,默认是本机,用户,最好选择是:apache 或 deamon
这样,也就是属于哪个用户的服务,由哪个用户启动。


转自: 

http://www.cnblogs.com/technet/archive/2011/09/11/2173485.html


测试代码:


package com.danga.MemCached.test;

import java.util.Date;

import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;

public class MemCachedManager {
	protected static MemCachedClient mcc = new MemCachedClient();
	protected static MemCachedManager memCachedManager = new MemCachedManager();  
	  
	 /** 
     * 获取唯一实例. 
     *  
     * @return 
     */  
    public static MemCachedManager getInstance() {  
        return memCachedManager;  
    }  
	static {
		// 服务器列表和其权重
		String[] servers = { "192.168.10.69:12000" };
		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);

		// initialize the connection pool
		// 初始化一些值并与MemcachedServer段建立连接
		pool.initialize();

		// lets set some compression on for the client
		// compress anything larger than 64k
		mcc.setCompressEnable(true);
		mcc.setCompressThreshold(64 * 1024);
	}

	  /** 
     * 添加一个指定的值到缓存中. 
     *  
     * @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);  
    }  
  
    /** 
     * 根据指定的关键字获取对象. 
     *  
     * @param key 
     * @return 
     */  
    public Object get(String key) {  
        return mcc.get(key);  
    }  
 

	public static void main(String[] args) {
		   MemCachedManager cache = MemCachedManager.getInstance();  
	       // cache.add("test", 234);
		   System.out.println(cache.get("test"));;
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值