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

 

posted @ 2016-01-29 23:41  ihuning  阅读(423)  评论(0编辑  收藏  举报