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

安装和使用memcached(windows)

2013-02-27 11:41 260 查看
一般情况下,我们用linux作为生产环境,但是开发还是在windows下面,所以我们需要 win版本。。但是memcache官方网站只提供了源码。



下面介绍使用第三方编译的win版本的方法:



这是一个由Kenneth Dalgleish基于Kronuz的1.2.1构建。官方的memcached的团队不对这个版本支持!



核心关键在这个:

http://splinedancer.com/memcached-win32/

Windows下Memcache安装


1、下载memcache for windows。下载地址:http://splinedancer.com/memcached-win32/,解压到d:\memcached。

2、在命令行状态下输入: d:\memcached\memcached.exe -d install 。至此memcached已经安装成windows服务

3、在命令行下输入: d:\memcached\memcached.exe -d start 以启动memcached服务。当然也可以选择在windows服务中启动

注:以上命令需要在管理员权限下执行,可以到C:\Windows\System32\cmd.exe 右键以管理员身份执行.

memcached的基本设置

-p 监听的端口

-l 连接的IP地址, 默认是本机

-d start 启动memcached服务

-d restart 重起memcached服务

-d stop|shutdown 关闭正在运行的memcached服务

-d install 安装memcached服务

-d uninstall 卸载memcached服务

-u 以的身份运行 (仅在以root运行的时候有效)

-m 最大内存使用,单位MB。默认64MB

-M 内存耗尽时返回错误,而不是删除项

-c 最大同时连接数,默认是1024

-f 块大小增长因子,默认是1.25

-n 最小分配空间,key+value+flags默认是48

-h 显示帮助

Memcache环境测试

运行下面的php文件,如果有输出This is a value!,就表示环境搭建成功。开始领略Memcache的魅力把!



Php代码


<?php
$mem = new Memcache;
$mem->connect("127.0.0.1", 11211);
$mem->set('key', 'This is a value!', 0, 60);
$val = $mem->get('key');
echo $val;




J***A下的安装:



2.从https://github.com/gwhalin/Memcached-Java-Client下载Memcached相关的jar包。

测试程序:



Java代码


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

public class MemCachedTest {

private static MemCachedClient mcc = new MemCachedClient();

static {
String[] servers = {"192.168.123.100:11211"};
//创建一个连接池
SockIOPool pool = SockIOPool.getInstance();
//设置缓存服务器
pool.setServers(servers);
//设置初始化连接数,最小连接数,最大连接数以及最大处理时间
pool.setInitConn(50);
pool.setMinConn(50);
pool.setMaxConn(500);
pool.setMaxIdle(1000 * 60 * 60);
//设置主线程睡眠时间,每30秒苏醒一次,维持连接池大小
pool.setMaintSleep(30);
//关闭套接字缓存
pool.setNagle(false);
//连接建立后的超时时间
pool.setSocketTO(3000);
//连接建立时的超时时间
pool.setSocketConnectTO(0);
//初始化连接池
pool.initialize();
}

protected MemCachedTest(){

}

public static MemCachedClient getInstance(){
return mcc;
}

public static void main(String[] args) {

MemCachedClient mcc= MemCachedTest.getInstance();
for ( int i = 0; i < 10; i++ ) {
boolean success = mcc.set( "" + i, "Hello!" );
String result = (String)mcc.get( "" + i );
System.out.println( String.format( "set( %d ): %s", i, success ) );
System.out.println( String.format( "get( %d ): %s", i, result ) );
}

System.out.println( "\n\t -- sleeping --\n" );
try { Thread.sleep( 100000 ); } catch ( Exception ex ) { }

for ( int i = 0; i < 10; i++ ) {
boolean success = mcc.set( "" + i, "Hello!" );
String result = (String)mcc.get( "" + i );
System.out.println( String.format( "set( %d ): %s", i, success ) );
System.out.println( String.format( "get( %d ): %s", i, result ) );
}
}
}








参考资料

对Memcached有疑问的朋友可以参考下列文章:

Linux下的Memcache安装:http://www.ccvita.com/257.html

Windows下的Memcache安装:http://www.ccvita.com/258.html

Memcache基础教程:http://www.ccvita.com/259.html

Discuz!的Memcache缓存实现:http://www.ccvita.com/261.html

Memcache协议中文版:http://www.ccvita.com/306.html

Memcache分布式部署方案:http://www.ccvita.com/395.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: