首先下载memcached的windows版本和java客户端jar包,目前最新版本是memcached-1.2.1-win32.zip和java_memcached-release_2.6.3.zip,分别解压后即可!首先是安装运行memcached服务器,我们将memcached-1.2.1-win32.zip解压后改名memcached放到e盘,进入其目录,然后运行如下命令:
e:\cd memcached
e:\memcached >memcached.exe -d install -l 127.0.0.1 -m 1024 -c 2048
打开服务列表,可以看到memcached已经在上面可,如果没有启动,则手动启动一下。
或者命令启动e:\memcached >memcached.exe -d start
启动完毕可以关闭cmd窗口
memcached.exe -d install -l 127.0.0.1 -m 1024 -c 2048:是安装在本机,分配1024M内存,使用默认端口11211,允许连接数量2028和-d以守护进行运行。执行完毕后,我们就可以在任务管理器中见到memcached.exe这个进程了。
使用telnet命令 验证缓存服务器是否可用。
开始什么都不显示,回车后输入命令 stats 查看统计信息,如下图,说明服务器运作正常。
三、参数介绍
1、 以上的安装和启动给了一些参数,在安装时可设置如下参数:
-p 设置端口号(默认不设置为: 11211)
-l 绑定地址(默认:所有都允许,无论内外网或者本机更换IP,有安全隐患,若设置为127.0.0.1就只能本机访问)
-d 独立进程运行:
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u 绑定使用指定用于运行进程
-m 允许最大内存用量,单位M (默认: 64 MB)
-P 将PID写入文件,可以使得后边进行快速进程终止,需要与-d 一起使用
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25
-n 最小分配空间,key+value+flags默认是48
-h 显示帮助
如:“memcached -d install -l 127.0.0.1 -m 1024 -c 2048 -p 22222”
好了,我们的服务器已经正常运行了,
接下来我们编写一个工具类MemcachedUtils.java。里面封装了一些memcached的方法,这些方法都是基于 java_memcached-release2.6.3.jar进行包装的, 使用它与spring整合可以方便我们在项目中使用。
本工具类的原作者是:http://blog.csdn.net/yin_jw/article/details/32331453
程序如下:-
package com.test.utils; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; import java.lang.management.ManagementFactory; import java.lang.management.RuntimeMXBean; import java.text.SimpleDateFormat; import java.util.Date; import org.apache.log4j.Logger; import com.danga.MemCached.MemCachedClient; public class MemcachedUtils { private static final Logger logger = Logger.getLogger(MemcachedUtils.class); private static MemCachedClient cachedClient; static { if (cachedClient == null) cachedClient = new MemCachedClient("memcachedPool");//注入的是spring-memcached中的实例 } private MemcachedUtils() {} /** * 向缓存添加新的键值对。如果键已经存在,则之前的值将被替换。 * * @param key * 键 * @param value * 值 * @return */ public static boolean set(String key, Object value) { return setExp(key, value, null); } /** * 向缓存添加新的键值