设为首页 收藏本站
查看: 1030|回复: 0

[经验分享] window下安装memcached,及简单使用

[复制链接]

尚未签到

发表于 2015-9-1 10:08:59 | 显示全部楼层 |阅读模式
  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

  
  以上内容有些参考至网络,参考网址已经找不到,特此说明。


  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-108247-1-1.html 上篇帖子: memcached的基础 下篇帖子: 初识 Memcached【一】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表