memcache用法(转)

原:http://blog.csdn.net/sd0902/article/details/16847623

【window】

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

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

2>cd C:\memcached(回车)

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

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

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

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

【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,可以不用安装)

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"));
    }
}

参考
http://afterglow.iteye.com/blog/705110

时间: 2024-11-12 09:27:43

memcache用法(转)的相关文章

MEMCACHE用法详解

MemCache是一个自由.源码开放.高性能.分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度. MemCache是什么? MemCache是一个自由.源码开放.高性能.分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度. MemCaChe是一个存储键值对的HashMap,在内存中对任意的数据(比如字符串

《PHP框架Yii学习》系列技术文章整理收藏

<PHP框架Yii学习>系列技术文章整理收藏 1Yii Framework框架获取分类下面的所有子类方法 2YII模块实现绑定二级域名的方法 3Yii框架官方指南系列43——专题:URL(创建.路由.美化及自定义) 4Yii入门教程之目录结构.入口文件及路由设置 5Yii核心组件AssetManager原理分析 6Yii使用ajax验证显示错误messagebox的解决方法 7Yii框架中memcache用法实例 8Yii中CGridView关联表搜索排序方法实例详解 9yii实现CheckB

memcache命令行用法

(转)Memcache 的命令行用法 1.启动Memcache 常用参数    memcached 1.4.3     -p <num>      设置端口号(默认不设置为: 11211)     -U <num>      UDP监听端口 (默认: 11211, 0 时关闭)     -l <ip_addr> 绑定地址 (默认:所有都允许,无论内外网或者本机更换IP,有安全隐患,若设置为127.0.0.1就只能本机访问)     -d            独立进程运

PHP memcache add replace set的区别和其他用法收集

add replace set的区别 最近在面试时遇到一个问题 memcache 的add replace set的区别,故在此进行加强 add 是向服务器添加一个缓存的数据,当该键已存在会返回一个false,否则返回一个true replace 是在服务器内一个替换一个缓存的数据,当该键不存在时会返回一个false,否则返回true set 则是add和replace的集合体,如果该键存在就替换,不存在就设置,返回的是true increment decrement delete加法减法删除运

php操作memcache的用法、详解和方法介绍

1.简介 memcache模块是一个高效的守护进程,提供用于内存缓存的过程式程序和面向对象的方便的接口,特别是对于设计动态web程序时减少对数据库的访问. memcache也提供用于通信对话(session_handler)的处理. 更多Memcache 模块相关信息可以到 http://www.danga.com/memcached/ 查阅. 1.1.memcache在php.ini中的配置项列表 memcache在php.ini中的配置项列表 名称 默认值 是否可变 改变日志 memcach

memcache缓存函数方法详解

1.Memcache::add用法  代码:bool Memcache::add ( string $key , mixed $var [, int $flag [, int $expire ]] ) 说明: 如果$key不存在的时候,使用这个函数来存储$var的值.功能相同的函数是memcache_add(). 参数: $key :将要存储的键值. $var :存储的值,字符型和整型会按原值保存,其他类型自动序列化以后保存. $flag:是否用MEMCACHE_COMPRESSED来压缩存储的

PHP memcache实现消息队列实例

现在,memcache于server缓存广泛应用.下面我来介绍一下memcache消息队列中等待的样本实现,有需要了解的朋友可以参考. memche消息队列原则key上做文章.后消息或者日志. 然后通过定时程序将内容落地到文件或者数据库. php实现消息队列的用处比方在做发送邮件时发送大量邮件非常费时间的问题.那么能够採取队列. 方便实现队列的轻量级队列server是: starling支持memcache协议的轻量级持久化server https://github.com/starling/s

通过memcache动态运行库操作memcached服务,进行CURD

具体学习参考php参考手册: 操作memcached的几种方式: bool Memcache::add ( string $key , mixed $var [, int $flag [, int $expire ]] ) 如果报 expire 设为0 表示,永不过期.(只要memcache不重新启动,就永远在mem中) exprie 直接给的是秒数,则最大 30*3600*24 如果你希望保持时间超过30  time()+天数*3600*24 即可 mem1.php <?php //创建一个m

memcache【命令行参数说明】

Memcache 命令行参数说明 1.启动Memcache 常用参数 -p <num>      设置TCP端口号(默认不设置为: 11211) -U <num>      UDP监听端口(默认: 11211, 0 时关闭) -l <ip_addr>  绑定地址(默认:所有都允许,无论内外网或者本机更换IP,有安全隐患,若设置为127.0.0.1就只能本机访问) -d                    以daemon方式运行 -u <username>