memcache在windows7下安装
1. 下载包:
软件包下载 下载Memercached For Windows:http://download.csdn.net/detail/bbirdsky/7395123
2. 安装:
2.1、解压到指定目录,如:E:\memcached
2.2、用cmd打开命令窗口,转到解压的目录,输入 “memcached -d install”如下图:
2.3、查看是否安装成功,输入memcached –h,出现下图窗口说明已经安装成功。
默认参数说明 -p 监听的端口 -l 连接的IP地址, 默认是本机 -d start 启动memcached服务 -d restart 重起memcached服务 -d stop|shutdown 关闭正在运行的memcached服务 -d install 安装memcached服务 -d uninstall 卸载memcached服 -u 以的身份运行 (仅在以root运行的时候有效 -m 最大内存使用,单位MB。默认64M -M 内存耗尽时返回错误,而不是删除 -c 最大同时连接数,默认是102 -f 块大小增长因子,默认是1.2 -n 最小分配空间,key+value+flags默认是4 -h 显示帮助
3. 启动/停止
memcached.exe -d start
memcached.exe -d stop
memcached.exe -d restart
4. 测试
4.1 telnet测试是否正常运行 telnet 127.0.0.1 11
4.2 进入后先按ctrl+]启动回示功能,否则无法看到输入信息。回示功能启动成功后如下图:
4.3 stats命令查看运行状态如下图:
5. 下载java链接驱动:
https://github.com/gwhalin/Memcached-Java-Client/downloads
6. 编写代码:
package org.aning.blog.engine.base.service.impl; import java.util.Calendar; import java.util.Date; import org.aning.blog.engine.base.service.IMemcacheService; import com.danga.MemCached.MemCachedClient; import com.danga.MemCached.SockIOPool; public class MemcacheService implements IMemcacheService { // 构建缓存客户端 private static MemCachedClient cachedClient; private MemcacheService() { cachedClient = new MemCachedClient(); //获取连接池实例 SockIOPool pool = SockIOPool.getInstance(); //设置缓存服务器地址,可以设置多个实现分布式缓存 11211 pool.setServers(new String[]{"127.0.0.1:11211"}); //设置初始连接5 pool.setInitConn(5); //设置最小连接5 pool.setMinConn(5); //设置最大连接250 pool.setMaxConn(250); //设置每个连接最大空闲时间3个小时 pool.setMaxIdle(1000 * 60 * 60 * 3); pool.setMaintSleep(30); pool.setNagle(false); pool.setSocketTO(3000); pool.setSocketConnectTO(0); pool.initialize(); } public static void main(String[] args) { MemcacheService mem= new MemcacheService(); Date date = new Date(); Calendar c = Calendar.getInstance(); c.setTime(date); c.add(Calendar.SECOND, 2); date = c.getTime(); mem.add("test", "yeah!",date); System.out.println("--------------------------"); System.out.println( mem.get("test")); for(int i = 0; i < 5; i++){ System.out.println(i + "-----------"); try{ Thread.sleep(1000); }catch(Exception e){ } } System.out.println("--------------------------"); System.out.println( mem.get("test")); } @Override public void add(String key, Object value) { cachedClient.set(key, value); } @Override public void add(String key, Object value, int milliseconds) { cachedClient.set(key, value, milliseconds); } public void add(String key, Object value, Date date) { cachedClient.set(key, value, date); } @Override public void remove(String key) { cachedClient.delete(key); } @SuppressWarnings("deprecation") @Override public void remove(String key, int milliseconds) { cachedClient.delete(key, milliseconds, new Date()); } @Override public void update(String key, Object value, int milliseconds) { cachedClient.replace(key, value, milliseconds); } @Override public void update(String key, Object value) { cachedClient.replace(key, value); } @Override public Object get(String key) { return cachedClient.get(key); } }
可能遇到的问题:
问题一:http://www.cnblogs.com/javawebsoa/p/3211968.html
windows 7 memcached报failed to install service or service already installed的解决方案
今天心血来潮捣鼓一下memcache,由于系统是windows 7,我参考了 Windows下安装Memcache 使用memcached for Win32。
在运行memcached.exe -d install的时候报了一个错,failed to install service or service already installed。
猜想可能是权限问题,毕竟是要作为服务安装的嘛,于是将cmd.exe以管理员身份运行,成功了。
以管理员身份运行的方法是在C:/windows/system32/下找到cmd.exe,之后右键“以管理员身份运行”就好了。
运行完,启动一下,可以在任务管理器的服务签找到memcached Server这样的服务进程,接下来就可以测试使用了。
题外话,真正搞程序搞软件还得Linux。
另外一定要注意php-memcache.dll或者php-memcached.dll与php版本的对应关系,如果版本对应不上无法加载。
问题二:http://www.cnblogs.com/haitao-fan/p/3912358.html
windows下修改memcached服务的端口号
虽然memcached装载linux下的人比较多,但是还是有人要装载windows上,比如像我们公司。
虽然memcached默认的端口号挺好的,可是还是有人想该改变其端口号的,比如像我。
如果不是作为服务启动memcached的话,memcached -p 端口号就可以了。
可是作为服务了该怎么改呢?
memcached -p 15000 -d start //这样做是无效的
这里我是通过修改注册表实现的
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached Server 其中的ImagePath项的值为:"c:\memcached\memcached.exe" -d runservice 改成:"c:\memcached\memcached.exe" -p 15000 -d runservice
参考资料:
http://www.ccvita.com/258.html
http://blog.csdn.net/wxwzy738/article/details/8571428
http://www.360doc.com/content/11/0516/12/1039473_117157506.shtml
http://jingyan.baidu.com/article/ed2a5d1f257fe509f6be178a.html