memcache用法

【window】

http://sishuok.com/forum/blogPost/list/3083.html
http://www.cnblogs.com/freshman0216/archive/2013/01/19/2867994.html

将memcache服务器安装包解压到C:\memcached文件夹后,使用cmd命令窗口安装。

1>开始>运行:CMD(确定)

2>cd C:\memcached(回车)

3>memcached -d install(回车 这步执行安装)

4>memcached -d start(回车 这步执行启动memcache服务器,默认分配64M内存,使用11211端口)

此时memcache服务器已经可以正常使用了。

 


【linux】

参考【http://my.oschina.net/flynewton/blog/9694

下载地址
memcached下载地址:http://www.danga.com/memcached/dist/memcached-1.4.0.tar.gz

Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent。(如果你的系统已经安装了libevent,可以不用安装)

官网:http://www.monkey.org/~provos/libevent/

 

1. 首先下载memcached 和 libevent 包。 Memcached用到了libevent这个库用于Socket的处理。下面是下载的两个包文件:
libevent-1.4.14b-stable.tar.gz
memcached-1.4.0.tar.gz

2. 上传这两个包到/scmgt/memcache目录(自建目录)下。

3. 解压并安装:

tar -zxf libevent-1.4.14b-stable.tar.gz
tar -zxf memcached-1.4.0.tar.gz
cd libevent-1.4.14b-stable
#################./configure --prefix=/usr (./configure -prefix=/usr) (--prefix=/gt/lib)
【如果usr没有权限就     ./configure --prefix=/scmgt/memcache/lib】
make && make install

cd ../ memcached-1.4.0
#################./configure --with-libevent=/usr
【如果usr没有权限就 ./configure --prefix=/scmgt/memcache/lib --with-libevent=/scmgt/memcache/lib】
make && make install

4. 启动Memcached

完成上述操作后,memcached被安装/usr/local/bin/【/scmgt/memcache/lib/bin】目录下。启动Memcache的服务器的命令:

/scmgt/memcache/lib/bin/memcached -d -m 1024 -u scmgt -l 10.25.193.16 -p 11211 -c 256 -P /scmgt/memcache/memcached.pid
【xx用法 ./memcached -d -m 2048 -p 11211】
参数说明:
-d 选项是启动一个守护进程,
-m 是分配给Memcache使用的内存数量,单位是MB,这里是1GB,
-u 是运行Memcache的用户,这里是root,
-l 是监听的服务器IP地址,如果有多个地址的话,以逗号隔开。这里指定了服务器的IP地址192.168.13.236,
-p 是设置Memcache监听的端口,我这里设置了12001,最好是1024以上的端口,
-c 选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
-P 是设置保存Memcache的pid文件,我这里是保存在 /tmp/chenxinhan/memcached.pid,
5. 结束Memcache进程,执行:

kill `cat /tmp/chenxinhan/memcached.pid`
或者:
ps -aux | grep memcache
然后直接kill掉memcache进程。
6. 可以启动多个守护进程,但是端口不能一样。这样就可以在一台机器上拥有多个Memcached

7:增加到开机启动
    # vi /etc/rc.local
        增加:/usr/local/memcacheq/bin/memcacheq  -d -r -uroot -p11212 -H /var/mcq/data -N -R -v -L 1024 -B 1024 > /var/mcq/logs/mq_error.log 2>&1

8. 代码测试:


    import java.util.Date;  
      
    import com.danga.MemCached.MemCachedClient;  
    import com.danga.MemCached.SockIOPool;  
      
      
    public class CacheManager {  
        private static MemCachedClient mcc = null;  
        static {  
            //String[] servers ={"127.0.0.1:11211"};  
            String[] servers ={"10.25.193.16:11211"};  
            //负载权重  
            Integer[] weights = {100};  
            //创建一个实例对象SockIOPool,设置mcc参数  
            SockIOPool pool = SockIOPool.getInstance();     
            pool.setServers( servers );        
            pool.setWeights( weights );    
              
            //设置初始连接数、最小和最大连接数以及最大处理时间  
            pool.setInitConn( 100 );        
            pool.setMinConn( 100 );        
            pool.setMaxConn( 500 );   
            pool.setMaxIdle( 1000 * 60 * 60 * 6 );  //6小时      
            //设置主线程的睡眠时间         
            pool.setMaintSleep( 30 );                 
            pool.setNagle( false );        
            pool.setSocketTO( 3000 );     
            pool.setSocketConnectTO( 0 );        
            pool.initialize();  
            //!!!注意:如果是我们自己的对象存放,最好重写序列化方法,不用使用默认。  
            mcc = new MemCachedClient();   
              
            //压缩设置,超过指定大小(单位为K)的数据都会被压缩  
           // mcc.setCompressEnable(true);  
           // mcc.setCompressThreshold(64*1024);  
              
            //使用代码  
    //        String key="id00001";  
    //        boolean r = mcc.set(key,"succe2ss", new Date(10 * 60 * 1000));//10分钟  
    //        System.out.println("SET "+ r);  
    //  
    //        System.out.println(mcc.get(key));  
    //        System.out.println(mcc.get(key));  
        }  
          
        public CacheManager(){  
              
        }  
          
        public static MemCachedClient getMemCachedClient(){  
            return mcc;  
        }  
          
        public boolean set(String key,Object obj){  
            return mcc.set(key, obj);  
        }  
          
        public boolean set(String key,Object obj,Date date){  
            return mcc.set(key, obj,date);  
        }  
          
        public Object get(String key){  
            return mcc.get(key);  
        }  
          
        public boolean add(String key,Object obj){  
            return mcc.add(key, obj);  
        }  
          
        public static void main(String[] args) {  
            if(args!=null && args.length==1 && args[0].equals("0"))  
                CacheManager.getMemCachedClient().set("11", "22");  
              
            System.out.println(CacheManager.getMemCachedClient().get("11"));  
        }  
    }  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值