• 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_MACHINESYSTEMCurrentControlSetServicesmemcached Server
    其中的ImagePath项的值为:"c:memcachedmemcached.exe" -d runservice
    改成:"c:memcachedmemcached.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

  • 相关阅读:
    UUID设主键让后续的开发工作更加方便
    S2SH整合FreeMarker
    轮询技术
    使DreamWeaver支持tml扩展名
    Editplus 的Record功能
    从注册表删除sqlserver注册
    ie8的新功能
    使用editplus 与 dreamweaver 协作开发
    安装SQL SERVER时提示"以前的某个程序安装已在安装计算机上创建挂起的文件操作 "解决方法
    选中文件夹设定为IIS站点主目录的批处理bat
  • 原文地址:https://www.cnblogs.com/ihuning/p/5170325.html
Copyright © 2020-2023  润新知