利用memcached java client一个简单的应用

1.memcached java client一个实现的下载地址

http://www.whalin.com/memcached/#download
2. 利用memcached java client 一个简单的应用

java 代码

package memcache;

import java.util.Date;

import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;

public class Test {

/**
* @param args
*/
protected static MemCachedClient mcc = new MemCachedClient(); 

static { 
String[] servers ={"124.42.60.19:12000"}; 

Integer[] weights = { 3 }; 

//创建一个实例对象SockIOPool 
SockIOPool pool = SockIOPool.getInstance(); 

// set the servers and the weights 
//设置Memcached Server 
pool.setServers( servers ); 
pool.setWeights( weights ); 

// set some basic pool settings 
// 5 initial, 5 min, and 250 max conns 
// and set the max idle time for a conn 
// to 6 hours 
pool.setInitConn( 5 ); 
pool.setMinConn( 5 ); 
pool.setMaxConn( 250 ); 
pool.setMaxIdle( 1000 * 60 * 60 * 6 ); 

// set the sleep for the maint thread 
// it will wake up every x seconds and 
// maintain the pool size 
pool.setMaintSleep( 30 ); 

// Tcp的规则就是在发送一个包之前,本地机器会等待远程主机 
// 对上一次发送的包的确认信息到来;这个方法就可以关闭套接字的缓存, 
// 以至这个包准备好了就发; 
pool.setNagle( false ); 
//连接建立后对超时的控制 
pool.setSocketTO( 3000 ); 
//连接建立时对超时的控制 
pool.setSocketConnectTO( 0 ); 

// initialize the connection pool 
//初始化一些值并与MemcachedServer段建立连接 
pool.initialize(); 


// lets set some compression on for the client 
// compress anything larger than 64k 
mcc.setCompressEnable( true ); 
mcc.setCompressThreshold( 64 * 1024 ); 


public static void bulidCache(){ 
//set(key,value,Date) ,Date是一个过期时间,如果想让这个过期时间生效的话,这里传递的new Date(long date) 中参数date,需要是个大于或等于1000的值。 
//因为java client的实现源码里是这样实现的 expiry.getTime() / 1000 ,也就是说,如果 小于1000的值,除以1000以后都是0,即永不过期 
mcc.set( "test", "This is a test String" ,new Date(10000)); //十秒后过期 



public static void output() { 
//从cache里取值 
String value = (String) mcc.get( "test" ); 
System.out.println(value); 


public static void main(String[] args){ 

bulidCache(); 

output(); 


}


运行输出值为:


This is a test String

3.注释掉buildCache();

十秒后运行,输出值为 null

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Java memcached client的过程中,建立与memcached服务端的socket连接是必不可少的一步。下面简单介绍一下如何建立socket连接。 1. 创建Socket对象 在Java中,我们可以通过创建Socket对象来建立与memcached服务端的连接。代码如下: ```java Socket socket = new Socket("localhost", 11211); ``` 其中,`localhost`表示memcached服务端所在的主机名或IP地址,`11211`表示memcached服务端监听的端口号。 2. 获取输入输出流 连接建立之后,我们需要获取套接字的输入输出流以便进行数据的读写操作。代码如下: ```java InputStream inputStream = socket.getInputStream(); OutputStream outputStream = socket.getOutputStream(); ``` 3. 发送请求 建立连接并获取输入输出流之后,我们就可以向memcached服务端发送请求了。在memcached中,请求的格式通常是一个命令字(比如`get`、`set`等)以及相应的参数。代码如下: ```java String command = "get mykey\r\n"; byte[] request = command.getBytes(); outputStream.write(request); ``` 其中,`\r\n`表示回车换行,用来告诉memcached服务端一条命令的结束。 4. 接收响应 发送请求之后,我们需要等待memcached服务端的响应。在Java中,我们可以通过输入流来读取服务端返回的数据。代码如下: ```java byte[] buffer = new byte[1024]; int len = inputStream.read(buffer); if (len > 0) { String response = new String(buffer, 0, len); System.out.println(response); } ``` 其中,`1024`表示读取数据时使用的缓冲区大小,`len`表示实际读取的数据长度,`response`表示服务端返回的字符串。 5. 关闭连接 最后,我们需要在使用完套接字之后关闭它以释放资源。代码如下: ```java socket.close(); ``` 完整示例代码如下: ```java import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; public class MemcachedClientDemo { public static void main(String[] args) throws Exception { Socket socket = new Socket("localhost", 11211); InputStream inputStream = socket.getInputStream(); OutputStream outputStream = socket.getOutputStream(); String command = "get mykey\r\n"; byte[] request = command.getBytes(); outputStream.write(request); byte[] buffer = new byte[1024]; int len = inputStream.read(buffer); if (len > 0) { String response = new String(buffer, 0, len); System.out.println(response); } socket.close(); } } ``` 以上就是如何在Java中建立与memcached服务端的socket连接的简单介绍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值