|
1、下载memcached for window,下载地址:http://www.iyunv.com/uploadfile/2012/0522/20120522094758371.rar (或者:http://www.kuaipan.cn/file/id_13620651260979196.htm)
2、将下载下来的压缩包解压到指定目录,我的放在D:\memcached-win32,如图:

3、打开cmd,转到解压目录,运行“memcached.exe -d install”,
常用设置:
-p <num> 监听的端口
-l <ip_addr> 连接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u <username> 以<username>的身份运行 (仅在以root运行的时候有效)
-m <num> 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c <num> 最大同时连接数,默认是1024
-f <factor> 块大小增长因子,默认是1.25
-n <bytes> 最小分配空间,key+value+flags默认是48
-h 显示帮助
4、打开服务,可以看到memcached已经在上面可,如果没有启动,则手动启动一下。

5、再次打开cmd,运行"telnet 127.0.0.1 11211",会弹出新的窗口,没有任何信息显示,如图:

键入stats,然后回车Enter,会出现下面图示:

以上图部分参数介绍:
以上是服务安装及启动,接下来存取数据
我用的是java 版的,首先需要下载java_memcached-release_2.0.1.jar包,
测试类及一些方法说明,MemcachedManage.java
package com.test.memcached;
import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;
public class MemcachedManage {
public static final String KEY = "test";
protected static MemCachedClient mcc = new MemCachedClient();
static{
SockIOPool pool = SockIOPool.getInstance();
/*
* 设置连接池可用的cache服务器列表,server的构成形式是IP:PORT(如:127.0.0.1:11211)
*/
pool.setServers(new String[] { "127.0.0.1:11211" });
/*
*
* 设置连接池可用cache服务器的权重,和server数组的位置一一对应
* 其实现方法是通过根据每个权重在连接池的bucket中放置同样数目的server
* (如下代码所示),因此所有权重的最大公约数应该是1,不然会引起bucket资源的浪费。
*/
pool.setWeights(new Integer[] { 1 });
/*
* 设置开始时每个cache服务器的可用连接数
*/
pool.setInitConn(5);
/*
* 设置每个服务器最少可用连接数
*/
pool.setMinConn(5);
/*
* 设置每个服务器最大可用连接数
*/
pool.setMaxConn(250);
/*
* 设置可用连接池的最长等待时间
*/
pool.setMaxIdle(1000 * 60 * 60 * 3);
/*
*
* 设置连接池维护线程的睡眠时间 设置为0,维护线程不启动
* 维护线程主要通过log输出socket的运行状况,监测连接数目及空闲等待时间等参数以控制连接创建和关闭。
*/
pool.setMaintSleep(2000);
/*
* 设置是否使用Nagle算法,因为我们的通讯数据量通常都比较大(相对TCP控制数据)而且要求响应及时,因此该值需要设置为false(默认是true
* )
*/
pool.setNagle(false);
pool.setSocketTO(3000);
pool.setSocketConnectTO(0);
/*
*
* 设置连接心跳监测开关。
* 设为true则每次通信都要进行连接是否有效的监测,造成通信次数倍增,加大网络负载,因此该参数应该在对HA要求比较高的场合设为TRUE
* ,默认状态是false。
*/
pool.setAliveCheck(true);
/*
*
* 设置连接失败恢复开关
* 设置为TRUE,当宕机的服务器启动或中断的网络连接后,这个socket连接还可继续使用,否则将不再使用,默认状态是true,建议保持默认。
*/
pool.setFailover(true);
/*
*
* 设置hash算法 alg=0 使用String.hashCode()获得hash
* code,该方法依赖JDK,可能和其他客户端不兼容,建议不使用 alg=1 使用original 兼容hash算法,兼容其他客户端
* alg=2 使用CRC32兼容hash算法,兼容其他客户端,性能优于original算法 alg=3 使用MD5 hash算法
* 采用前三种hash算法的时候,查找cache服务器使用余数方法。采用最后一种hash算法查找cache服务时使用consistent方法。
*/
pool.setHashingAlg(3);
/*
* 设置完pool参数后最后调用该方法,启动pool。
*/
pool.initialize();
/*
*
* 设定是否压缩放入cache中的数据 默认值是ture 如果设定该值为true,需要设定CompressThreshold?
*/
mcc.setCompressEnable(true);
/*
*
* 设定需要压缩的cache数据的阈值 默认值是30k
*/
mcc.setCompressThreshold(64 * 1024);
/*
*
* 设置cache数据的原始类型是String 默认值是false
* 只有在确定cache的数据类型是string的情况下才设为true,这样可以加快处理速度。
*/
mcc.setPrimitiveAsString(false);
/*
*
* 当primitiveAsString为true时使用的编码转化格式 默认值是utf-8
* 如果确认主要写入数据是中文等非ASCII编码字符,建议采用GBK等更短的编码格式
*/
// mcc.setDefaultEncoding("UTF-8");
}
/**
* @param args
*/
public static void main(String[] args) {
/*
* set方法
*
* 将数据保存到cache服务器,如果保存成功则返回true 如果cache服务器存在同样的key,则替换之
* set有5个重载方法,key和value是必须的参数,还有过期时间,hash码,value是否字符串三个可选参数
*/
System.out.println(mcc.set(KEY, "set"));
System.out.println(mcc.get(KEY));
/*
* add方法
*
* 将数据添加到cache服务器,如果保存成功则返回true 如果cache服务器存在同样key,则返回false
* add有4个重载方法,key和value是必须的参数,还有过期时间,hash码两个可选参数
*/
System.out.println(mcc.add(KEY, "add"));
System.out.println(mcc.get(KEY));
/*
*
* 将数据替换cache服务器中相同的key,如果保存成功则返回true 如果cache服务器不存在同样key,则返回false
* replace有4个重载方法,key和value是必须的参数,还有过期时间,hash码两个可选参数
*/
System.out.println(mcc.replace(KEY, "replace"));
System.out.println(mcc.get(KEY));
// 建议分析key的规律,如果呈现某种规律有序,则自己构造hash码,提高存储效率
/**
* cache数据读取操作方法
*
* 使用get方法从cache服务器获取一个数据 如果写入时是压缩的或序列化的,则get的返回会自动解压缩及反序列化
* get方法有3个重载方法,key是必须的参数,hash码和value是否字符串是可选参数
* 使用getMulti方法从cache服务器获取一组数据 get方法的数组实现,输入参数keys是一个key数组 返回是一个map
*
* 通过cache使用计数器
*
* 使用storeCounter方法初始化一个计数器 使用incr方法对计数器增量操作 使用decr对计数器减量操作
*/
}
}
运行结果如下:
com.danga.MemCached.MemCachedClient Wed May 15 15:51:18 CST 2013 - Storing with native handler...
com.danga.MemCached.MemCachedClient Wed May 15 15:51:18 CST 2013 - ++++ memcache cmd (result code): set test 0 0 4
(STORED)
com.danga.MemCached.MemCachedClient Wed May 15 15:51:18 CST 2013 - ++++ data successfully stored for key: test
true
set
com.danga.MemCached.MemCachedClient Wed May 15 15:51:18 CST 2013 - Storing with native handler...
com.danga.MemCached.MemCachedClient Wed May 15 15:51:18 CST 2013 - ++++ memcache cmd (result code): add test 0 0 4
(NOT_STORED)
com.danga.MemCached.MemCachedClient Wed May 15 15:51:18 CST 2013 - ++++ data not stored in cache for key: test
false
set
com.danga.MemCached.MemCachedClient Wed May 15 15:51:18 CST 2013 - Storing with native handler...
com.danga.MemCached.MemCachedClient Wed May 15 15:51:18 CST 2013 - ++++ memcache cmd (result code): replace test 0 0 8
(STORED)
com.danga.MemCached.MemCachedClient Wed May 15 15:51:18 CST 2013 - ++++ data successfully stored for key: test
true
replace
以上内容有些参考至网络,参考网址已经找不到,特此说明。
|
|
|