2.memcached
3.MongoDB
2.memcached
Memcached守护进程是c写的,是高性能的分布式内存对象缓存系统
2.1 memcached安装
http://s3.amazonaws.com/downloads.northscale.com/memcached-win32-1.4.4-14.zip
http://s3.amazonaws.com/downloads.northscale.com/memcached-win64-1.4.4-14.zip
下载后解压memcached-win32-1.4.4-14.zip为memcached,并将memcached-win64-1.4.4-14.zip中的3个文件覆盖memcached中的文件。
#进入memcached根目录,注册为windows服务:
D:\service\memcached>memcached.exe -d install
#进入memcached根目录,检测是否安装成功:
D:\service\memcached>memcached -h
若返回参数说明安装成功
#启动服务
> net start memcached
或者
#启动服务
D:\service\memcached>memcached.exe -d start
#测试是否启动成功
telnet 127.0.0.1 11211
#其他系统及命令或参数:
memcached.exe -d stop
memcached.exe -d uninstall
-m 最大内存使用,单位MB。默认64MB
-c 最大同时连接数,默认是1024
-p 监听的端口
例如:
> memcached.exe -p 10000 -m 512 -d start
2.2 memcached使用-client
> telnet 127.0.0.1 11211
客户端连接服务器
命令格式为:
<command name> <key> <flags> <exptime> <bytes>//注意,此处要记得回车 <data block>
<bytes>是你输入<data block>的长度,必须输入长度相等的字符长度返回stored,返回报错:
CLIENT_ERROR bad data chunk
如:
#memcached服务器信息
>stats
#添加值
>add key 0 0 2
>12
>stored
#获取值
>get key
#修改
>set key 0 10 2
>13
>stored
2.3 memcached使用-java
https://github.com/gwhalin/Memcached-Java-Client
添加jar:
<dependency> <groupId>com.whalin</groupId> <artifactId>Memcached-Java-Client</artifactId> <version>3.0.2</version> </dependency>
package com.byron.memcached.client; import com.whalin.MemCached.MemCachedClient; import com.whalin.MemCached.SockIOPool; public class MemCachedTest { public static void main(String[] args) { // SockIOPool 初始化 String[] servers = { "127.0.0.1:11211" }; SockIOPool pool = SockIOPool.getInstance(); pool.setServers(servers); pool.setFailover(true); pool.setInitConn(10); pool.setMinConn(5); pool.setMaxConn(250); pool.setMaintSleep(30); pool.setNagle(false); pool.setSocketTO(3000); pool.setAliveCheck(true); pool.initialize(); // 新建client:默认从 MemCachedClient memCachedClient = new MemCachedClient(); for (int i = 0; i < 10; i++) { // 添加数据 boolean success = memCachedClient.set("" + i, "Hello!"); // 获取数据 String result = (String) memCachedClient.get("" + i); System.out.println(String.format("set( %d ): %s", i, success)); System.out.println(String.format("get( %d ): %s", i, result)); } } }
2.4 memcached使用-hibernate
影响中hibernate会到过memcached,由于很长时间没有用过hibernate,一直用的是ibatis,所以不再建实例了
memcached是对象缓存服务器,所以与hibernate集成是个不错的场景。这也是相比于redis的一个优势
2.5 memcached分布式原理
参考网站:
JAVA客户端API调用memcached两种方式
http://www.cnblogs.com/longshiyVip/p/4889817.html
http://www.cnblogs.com/sunniest/p/4154209.html
Memcached和Memcache安装(64位win7)
http://www.cnblogs.com/wujuntian/p/4791220.html
telnet memcached error: "CLIENT_ERROR bad data chunk"
http://f.dataguru.cn/thread-46013-1-1.html