Linux下的Memcached安装与JAVA客户端连接Memcached

Linux下Memcache服务器端的安装

memcached现在版本为1.4.13,可以去http://memcached.org/下载最新版本.

因为memcached底层通信是有libevent实现的,所以还需要去下载它.下载地址为http://libevent.org/.

也可以通过wget直接下载

1.分别把memcached和libevent下载回来,放到 /tmp 目录下:
# cd /tmp
# wget http://memcached.googlecode.com/files/memcached-1.4.13.tar.gz
# wget https://github.com/downloads/libevent/libevent/libevent-2.0.19-stable.tar.gz
2.先安装libevent:
# tar zxvf libevent-1.2.tar.gz
# cd libevent-1.2
# ./configure --prefix=/usr
# make
# make install

3.测试libevent是否安装成功:
# ls -al /usr/lib | grep libevent
lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent-1.2.so.1 -> libevent-1.2.so.1.0.3
-rwxr-xr-x 1 root root 263546 11?? 12 17:38 libevent-1.2.so.1.0.3
-rw-r--r-- 1 root root 454156 11?? 12 17:38 libevent.a
-rwxr-xr-x 1 root root 811 11?? 12 17:38 libevent.la
lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent.so -> libevent-1.2.so.1.0.3
还不错,都安装上了。

4.安装memcached,同时需要安装中指定libevent的安装位置:
# cd /tmp
# tar zxvf memcached-1.2.0.tar.gz
# cd memcached-1.2.0
# ./configure --with-libevent=/usr
# make
# make install
如果中间出现报错,请仔细检查错误信息,按照错误信息来配置或者增加相应的库或者路径。
安装完成后会把memcached放到 /usr/local/bin/memcached ,

5.测试是否成功安装memcached:
# ls -al /usr/local/bin/mem*
-rwxr-xr-x 1 root root 137986 11?? 12 17:39 /usr/local/bin/memcached
-rwxr-xr-x 1 root root 140179 11?? 12 17:39 /usr/local/bin/memcached-debug
memcached的基本设置
1.启动Memcache的服务器端:

# /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,

2.如果要结束Memcache进程,执行:

# kill 'cat /tmp/memcached.pid'

利用java调用memcache

memcache java client 下载地址:https://github.com/gwhalin/Memcached-Java-Client/downloads

测试代码如下:

package memcached;

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

/**
 * <p>Title: MemCacheInvoke</p>
 * <p>  Created: 2012-7-9 下午4:12:46 </p>
 * <p> yansheng723@gmail.com</p>
 * @author ShengYan
 * @version
 */
public class MemCacheInvoke {
    // 创建一个 memcached 客户端对象
    protected static MemCachedClient mcc = new MemCachedClient();

    // 创建 memcached连接池
    static{
         // 指定memcached服务地址
        String[] servers = { "192.168.58.132:12000" };

        // 指定memcached服务器负载量
        Integer[] weights = { 3, 3, 2 };

        // 从连接池获取一个连接实例
        SockIOPool pool = SockIOPool.getInstance();

        // 设置服务器和服务器负载量
        pool.setServers(servers);
        pool.setWeights(weights);

        // 设置一些基本的参数
        // 设置初始连接数5 最小连接数 5 最大连接数 250
        // 设置一个连接最大空闲时间6小时
        pool.setInitConn(5);
        pool.setMinConn(5);
        pool.setMaxConn(250);
        pool.setMaxIdle(1000 * 60 * 60 * 6);

        // 设置主线程睡眠时间
        // 每隔30秒醒来 然后
        // 开始维护 连接数大小
        pool.setMaintSleep(30);

        // 设置tcp 相关的树形
        // 关闭nagle算法
        // 设置 读取 超时3秒钟 set the read timeout to 3 secs
        // 不设置连接超时
        pool.setNagle(false);
        pool.setSocketTO(3000);
        pool.setSocketConnectTO(0);

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

        // 设置压缩模式
        // 如果超过64k压缩数据
//        mcc.setCompressEnable(true);
//        mcc.setCompressThreshold(64 * 1024);
    }

    public static void main(String args[]) {
        User u1 = new User();
        u1.setUserName("frady");
        u1.setEmail("weimengiq@126.com");
        mcc.add("fradyt", u1);

        User u2 = (User) mcc.get("fradyt");
        System.out.println("email=" + u2.getEmail());
        u2.setEmail("weimengiq@gmail.com");
        mcc.replace("fradyt", u2);

        u2 = (User) mcc.get("fradyt");
        System.out.println("email=" + u2.getEmail());
    }
}


参考地址:http://www.ccvita.com/257.html



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值