memcached有三種java客戶端
第一種:Com.danga?包下面的memcached,需引入jar(本人用的是memcached-2.5.2.jar?文末附上附件需要的可以下載)
第二種:spyMemcached
第三種:XMemcached?
據說第三種是使用最簡單,最好用的,我也只接觸并使用過第三種
首先是xmemcached安裝
1.memcached和libevent下載:
官網:http://www.monkey.org
2.解壓安裝libevent:
$?tar zxvf libevent-1.2.tar.gz
$?cd libevent-1.2
$?./configure –prefix=/usr/libevent ?//這個prefix就是安裝路徑
$?make
$?make install
3.測試libevent是否安裝成功:
# ls -al /usr/lib | grep libevent
lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent-1.2.so.1 -> libevent-1.2.so.1.0.3
-rwxr-xr-x 1 root root 263546 11?? 12 17:38 libevent-1.2.so.1.0.3
-rw-r–r– 1 root root 454156 11?? 12 17:38 libevent.a
-rwxr-xr-x 1 root root 811 11?? 12 17:38 libevent.la
lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent.so -> libevent-1.2.so.1.0.3
基本上如果是這樣就是安裝上了,如果報錯,就一定要主義文件夾的操作權限(讀入權限(chmod +r libevent 加入寫入權限))
4.安裝memcached,同時需要安裝中指定libevent的安裝位置:
# tar zxvf memcached-1.2.0.tar.gz
# cd memcached-1.2.0
# ./configure –prefix=/usr/memcached –with-libevent=/usr/libevent ? //同樣的指定memcached的安裝路徑(默認的是在usr/local) 后面的指定為libevent的安裝路徑
# make
# make install
5.測試是否成功安裝memcached:
# ls -al /usr/memcached/bin/mem*
-rwxr-xr-x 1 root root 137986 11?? 12 17:39 /usr/local/bin/memcached
-rwxr-xr-x 1 root root 140179 11?? 12 17:39 /usr/local/bin/memcached-debug
如果這樣現實,基本上就成功了
啟動服務:
memcached -d -m 100 -u root -c 10 -p 11211 -P /tmp/memcached1.pid
-p 指定端口號(默認11211)??
-m 指定最大使用內存大小(默認64MB)??
-t 線程數(默認4)??
-l 連接的IP地址, 默認是本機??
-d start 啟動memcached服務??
-d restart 重起memcached服務??
-d stop|shutdown 關閉正在運行的memcached服務??
-m 最大內存使用,單位MB。默認64MB??
-M 內存耗盡時返回錯誤,而不是刪除項??
-c 最大同時連接數,默認是1024
-f 塊大小增長因子,默認是1.25
-n 最小分配空間,key+value+flags默認是48
后面的P用于指定訪問id記錄,在啟動和調用memcached之后生成
如果我們要查看是否有memcached進程:$ps -ef|grep memcached
連接試試看:telnet 服務器ip 端口(eg:telnet 127.0.0.1 11211)
很多人自己摸索學習沒有linux服務器,我自己在學習的過程種也在自己電腦(windows系統)上裝了一個,所以也簡單說一下windows上面的安裝(其實有百度教程的):
一:下載
http://downloads.northscale.com/memcached-win64-1.4.4-14.zip?或?www.newasp.net/soft/63735.html
二:安裝啟動
打開cmd,找到解壓的位置,輸入memcached.exe -d install 安裝 memcached.exe -d start啟動服務,如果想啟用多個服務:sc create "Memcached Server1" start= auto binPath= "D:\Memcached\memcached.exe -d runservice -m 100 -p 11210 -l 127.0.0.1" DisplayName= "Memcached Server1",注意端口號不要重復,使用的時候啟動該服務,新建的服務并沒有立即啟動。
##########################################
好的,基本上我們就裝上了memcached
寫一個簡單的測試類:
package com.memcached.study;
import java.io.IOException;
import java.util.concurrent.TimeoutException;
import net.rubyeye.xmemcached.MemcachedClient;
import net.rubyeye.xmemcached.MemcachedClientBuilder;
import net.rubyeye.xmemcached.XMemcachedClientBuilder;
import net.rubyeye.xmemcached.command.BinaryCommandFactory;
import net.rubyeye.xmemcached.exception.MemcachedException;
import net.rubyeye.xmemcached.utils.AddrUtil;
public class TestXMemcache
{
public static void main(String[] args) {
int[] weight={1,2};
MemcachedClientBuilder builder = new XMemcachedClientBuilder(AddrUtil
.getAddresses("127.0.0.1:11211 127.0.0.1:11210"),weight);
//宕機報警
builder.setFailureMode(true);
//使用二進制協議,默認使用的TextCommandFactory即文本協議
builder.setCommandFactory(new BinaryCommandFactory());
MemcachedClient memcachedClient;
try {
memcachedClient = builder.build();
?
memcachedClient.set("hello", 0, "Hello,xmemcached");
String value = memcachedClient.get("hello");
System.out.println("hello=" + value);
//memcachedClient.delete("hello");
memcachedClient.set("zlex", 0, "Hello,xmemcached");
value = memcachedClient.get("zlex");
System.out.println("zlex=" + value);
// close memcached client
memcachedClient.shutdown();
} catch (MemcachedException e) {
System.err.println("MemcachedClient operation fail");
e.printStackTrace();
} catch (TimeoutException e) {
System.err.println("MemcachedClient operation timeout");
e.printStackTrace();
} catch (InterruptedException e) {
// ignore
}catch (IOException e) {
System.err.println("Shutdown MemcachedClient fail");
e.printStackTrace();
}
}
}
###忘了說,需要的ja包
然后我們通過telnet連接到memcached里面去看一下
果然有了,沒毛病。
?
?