您的位置:首页 > 数据库 > Memcache

Memcached安装与使用

2015-01-24 15:01 211 查看
Memcached安装与使用

WINDOW

1. memcached-win32-1.4.4-14在D:\memcached

2. 在终端(也即cmd命令界面)下输入 ‘D:\memcached\memcached.exe-d install' 安装

3. 再输入: ‘D:\memcached\memcached.exe-d start' 启动。(需要注意的: 以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了)

LINUX

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

libevent-1.4.12-stable.tar.gz

memcached-1.4.3.tar.gz

2. 上传这两个包到/tmp/chenxinhan/memcached目录(自建目录)下。

3. 解压并安装:

tar -zxf libevent-1.4.12-stable.tar.gz

tar -zxf memcached-1.4.3.tar.gz

cd libevent-1.4.12-stable

./configure --prefix=/usr

make

make install

cd ../ memcached-1.4.3

./configure --with-libevent=/usr

make

makeinstall

4. 执行 ldconfig

4. 启动Memcached

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

/usr/local/bin/memcached -d -m 1024 -u root-l 192.168.0.1 -p 12001 -c 256 -P /tmp/chenxinhan/memcached.pid

参数说明:

-d 选项是启动一个守护进程,

-m 是分配给Memcache使用的内存数量,单位是MB,这里是1GB,

-u 是运行Memcache的用户,这里是root,

-l 是监听的服务器IP地址,如果有多个地址的话,以逗号隔开。这里指定了服务器的IP地址192.168.0.1,

-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

以同样的方式在192.168.0.1上安装memcached

7. 代码测试:

public class TestMemcached {

// 创建全局的唯一实例

protected static MemCachedClient mcc = new MemCachedClient();

protected static TestMemcached memCached = new TestMemcached();

// 设置与缓存服务器的连接池

static {

// 服务器列表和其权重

String[] servers = { "192.168.0.1:12001","192.168.0.2:12001" };

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 TestMemcached()

{

}

/**

* 获取唯一实例.

* @return

*/

public static TestMemcached 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);

}

/**

* 根据指定的关键字获取对象.

* @param key

* @return

*/

public Object get(String key)

{

return mcc.get(key);

}

public static void main(String[] args)

{

TestMemcached cache = TestMemcached.getInstance();

cache.add("data" , "hello world");

String st=cache.get("data");

System.out.println(st);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: