?
一、序言
? ? ? ?这里先简单介绍下memcache 缓存在windows 上的安装 以及应用,然后再进行一些简单的测试,客户端用是xmemcached ,因为业界整体效果不错
? ?
? ? ? 1.先现在windos 64 位的,我是win8,
? ? ? ? ?参考:http://blog.couchbase.com/memcached-windows-64-bit-pre-release-available,解压到 ? ? ? ? ? 。 ? ? f:\memcache\下
? ? ? 2.打开DOS 在文件目录下执行:memcached.exe -d install 就安装好了,简单吧 - -
? ? ? 3.创建服务,大部分介绍时?memcached.exe -d start 简单吧,默认是11211 端口,可以通过
-p 11211 指定端口,-m 512指定大小,其他命令暂时不介绍,记得用管理员身份哦~。~
? ? ? ? ?为了多开几个服务端口,我们还可以这样:
? ? ? ? ?sc create "memcached1" start= auto binPath= "f:\memcached\memcached.exe -d runservice -p 11211" DisplayName= "memcached1"
? ? ? ??创建服务:auto 开机启动,注意= 后面的空格,建立3个服务:11211 11212 11213,本机启3个。
? ? ? ??查看端口
? ? ? ? netstat -ano|findstr "11211" 这些有值就说明开启了。
? ? ? ? 其他命令
? ? ? ? sc start?memcached1?
? ? ? ? sc stop?memcached1?
? ? ? ? sc delete?memcached1
?
二、简单测试:
? ? ? ?这里用xmcached的,至于为什么用它,可以参考性能对比:
? ? ? ?http://xmemcached.googlecode.com/svn/trunk/benchmark/benchmark.html
? ? ??
? ? ? ?2.1 先看看maven 引入吧,这里是2.0 的了,新元素挺多的的
? ? ? ? 源码下载:https://github.com/killme2008/xmemcached/releases/tag/xmemcached-2.0.0
? ? ? ? 开源地址:https://github.com/killme2008/xmemcached
? ? ? ?
<dependency> <groupId>com.googlecode.xmemcached</groupId> <artifactId>xmemcached</artifactId> <version>2.0.0</version> </dependency>
? ??
? ?2.2 基本实现:
? ?
import net.rubyeye.xmemcached.*; import net.rubyeye.xmemcached.command.BinaryCommandFactory; import net.rubyeye.xmemcached.impl.KetamaMemcachedSessionLocator; import net.rubyeye.xmemcached.utils.AddrUtil; /** * Created by qiqiang on 2014/12/19. */ public class XMemcacheClient { public static void main(String[] args) throws Exception{ // 这里测试用了我们刚才建立的3个服务 MemcachedClientBuilder builder = new XMemcachedClientBuilder(AddrUtil.getAddresses("localhost:11211 localhost:11212 localhost:11213"),new int[]{1,1,1}); MemcachedClient memcachedClient= builder.build(); // 客户端分布 一致性hash builder.setSessionLocator(new KetamaMemcachedSessionLocator(HashAlgorithm.CRC32_HASH)); // 用序列化 二进制协议 ,默认是 TextCommandFactory builder.setCommandFactory(new BinaryCommandFactory()); // nio 连接池大小,这玩意儿 不一定越大越好,根据资源来定 // 而且多个连接会有数据不同步的问题,提供的cas 可以解决 builder.setConnectionPoolSize(3); // 宕机报警 builder.setFailureMode(true); // 第二个参数是秒,表示10秒后 清除这个元素,这里的自定义设置 也是我最喜欢的,ehcache - -就不没到! // 0 表示永久,默认是1个月 memcachedClient.delete("name"); // set 比add 方便,可以更新 可以添加 memcachedClient.set("name",10,"张三"); System.out.println(memcachedClient.get("name")); // 删除再获取 // memcachedClient.delete("name"); // System.out.println(memcachedClient.get("name")); // 这个 GetsResponse<String> result = memcachedClient.gets("name"); memcachedClient.cas("name",1,"李四",result.getCas()); System.out.println(memcachedClient.get("name")); // 关闭 memcachedClient.shutdown(); } }
?
?
?
?小结:
? ? ? ?1.上面做一个简单的安装 测试,有错误请指出的啦~。~
? ? ? ?2.iteye 服务 重启还是啥的,没自动保存,不见了些东西,剩下的就留下一些资料吧,方便大家看:
? ? ? 文档地址:https://code.google.com/p/xmemcached/wiki/User_Guide_zh
? ? ? API 地址:http://fnil.net/docs/xmemcached/net/rubyeye/xmemcached/XMemcachedClient.html
?
?
?
?