一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - 實例講解分布式緩存軟件Memcached的Java客戶端使用

實例講解分布式緩存軟件Memcached的Java客戶端使用

2020-03-24 13:35張釗 JAVA教程

這篇文章主要介紹了分布式緩存軟件Memcached的Java客戶端使用,Memcached在GitHub上開源,作者用其Windows平臺下的版本進行演示,需要的朋友可以參考下

Memcached介紹
下面就來介紹一下Memcached。

1、什么是Memcached

Memcached是一個開源的高性能,分布式的內(nèi)存對象緩存系統(tǒng),通過鍵值隊的形式來對數(shù)據(jù)進行存取,Memcached是簡單而強大,它的簡單設(shè)計促進快速部署,易于開發(fā),解決了大數(shù)據(jù)緩存面臨的許多問題。


官方網(wǎng)址是:http://memcached.org/,目前已經(jīng)有很多知名的互聯(lián)網(wǎng)應(yīng)用使用到了Memcached,比如Wikipedia、Flickr、Youtube、Wordpress等等。

2、下載Windows平臺下的MemCached,地址為:

http://code.jellycan.com/files/memcached-1.2.6-win32-bin.zip

對應(yīng)的源碼地址為:

http://code.jellycan.com/files/memcached-1.2.6-win32-src.zip

然后,解壓開來,會看到一個memcached.exe文件,進行如下圖的安裝,將以系統(tǒng)服務(wù)的形式安裝到機上

實例講解分布式緩存軟件Memcached的Java客戶端使用

然后查看系統(tǒng)服務(wù),會發(fā)現(xiàn)已經(jīng)可以看到memcached服務(wù)了

實例講解分布式緩存軟件Memcached的Java客戶端使用

然后,選中此服務(wù)點鼠標右鍵,啟動此服務(wù)。

在DOS界面中輸入:telnet 127.0.0.1 11211來確認服務(wù)是否啟動無誤,如果無誤,則會顯示如下窗口:

實例講解分布式緩存軟件Memcached的Java客戶端使用

上面圖中顯示的ERROR是我隨便輸入字符后按回車顯示的,這是因為你需要安裝memcached規(guī)定的協(xié)議來進行輸入,否則就顯示如上所示錯誤。

3、 memcached的協(xié)議與數(shù)據(jù)存取

所謂協(xié)議,可以理解為對其操作(數(shù)據(jù)存取)的語法規(guī)則,存取數(shù)據(jù)的常用命令和參數(shù)如下:

set:存入一條記錄

key:記錄的鍵值

flags:十進制的int,標識存儲記錄時的客戶端標志,在記錄取出時會返回。

exptim:數(shù)據(jù)的過期時間,0表示不過期,其他數(shù)值則表示有效的毫秒數(shù),在過期后,客戶端將取不到這條記錄,memcached中的過期記錄會被清空或刪除。

get:表示從memcached取出key對應(yīng)的值,如果沒有對應(yīng)的值則返回結(jié)束標志END

append:表示對key所對應(yīng)的值在最后再加入輸入的內(nèi)容

delete:刪除key對應(yīng)的值

更多協(xié)議可參考:memcached包中所帶的protocol.txt

具體例子如:

需要注意的是:在set時如果指定的字符長度為5,而輸入的內(nèi)容超過了這個長度,那么就會報錯:CLIENT_ERROR bad data chunk

實例講解分布式緩存軟件Memcached的Java客戶端使用

4、 編寫代碼對memcached進行數(shù)據(jù)存取操作

一般而言,可以使用開源已封裝好的memcached客戶端來對memcached進行操作,當然你也可以根據(jù)memcached的協(xié)議在代碼中通過編寫socket通信程序?qū)崿F(xiàn)。

Memcached-Java-Client的下載頁面:

http://github.com/gwhalin/Memcached-Java-Client/downloads,然后選擇下載:

java_memcached-release_2.5.1.zip

在解壓開的Test目錄中可以看到有些寫好的例子,可以通過運行com.danga.MemCached.test. TestMemcached來查看數(shù)據(jù)存入和取出情況,這里也貼出其代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package com.danga.MemCached.test;
 
import com.danga.MemCached.MemCachedClient;
 
import com.danga.MemCached.SockIOPool;
 
import org.apache.log4j.*;
 
public class TestMemcached {
 
public static void main(String[] args) {
 
// memcached should be running on port 11211 but NOT on 11212
 
BasicConfigurator.configure();
 
//緩存服務(wù)器地址,多臺服務(wù)器則以逗號隔開,11211為memcached使用的端口號
 
String[] servers = { “localhost: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();
 
MemCachedClient mcc = new MemCachedClient();
 
// turn off most memcached client logging:
 
//Logger.getLogger( MemCachedClient.class.getName() ).setLevel( com.schooner.MemCached.Logger. );
 
//以下是數(shù)據(jù)寫入和取出操作例子
 
for ( int i = 0; i < 10; i++ ) {
 
boolean success = mcc.set( “” + i, “Hello!” );
 
String result = (String)mcc.get( “” + i );
 
System.out.println( String.format( “set( %d ): %s”, i, success ) );
 
System.out.println( String.format( “get( %d ): %s”, i, result ) );
 
}
 
System.out.println( “\n\t — sleeping –\n” );
 
try { Thread.sleep( 10000 ); } catch ( Exception ex ) { }
 
for ( int i = 0; i < 10; i++ ) {
 
boolean success = mcc.set( “” + i, “Hello!” );
 
String result = (String)mcc.get( “” + i );
 
System.out.println( String.format( “set( %d ): %s”, i, success ) );
 
System.out.println( String.format( “get( %d ): %s”, i, result ) );
 
}
 
}
 
}

MemCached的java客戶端實例

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package com.danga.MemCached.test;
 
import com.danga.MemCached.*;
public class TestMemcached {
 public static void main(String[] args) {
  /*初始化SockIOPool,管理memcached的連接池*/
  String[] servers = { "192.168.105.217: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();
  /*建立MemcachedClient實例*/
  MemCachedClient memCachedClient = new MemCachedClient();
  for (int i = 0; i < 10; i++) {
   /*將對象加入到memcached緩存*/
   boolean success = memCachedClient.set("" + i, "Hello!");
   /*從memcached緩存中按key值取對象*/
   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));
  }
 }
}

1.解壓(本例中解壓到c:\memcached)。
2、在命令行狀態(tài)下輸入: c:\memcached\memcached.exe -d install 。至此memcached已經(jīng)安裝成windows服務(wù)
3、在命令行下輸入: c:\memcached\memcached.exe -d start 以啟動memcached服務(wù)。當然也可以選擇在windows服務(wù)中啟動

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品久久久精品视频 | 欧美一级欧美一级高清 | 奇米777四色精品综合影院 | 成 人 免费 小说在线观看 | 青青青久在线视频免费观看 | 成人午夜爽爽爽免费视频 | 日韩无砖2021特黄 | 天天摸天天操天天爽 | 美女和男人免费网站视频 | 石原莉奈adn093店长未婚妻 | 114毛片免费观看网站 | 干露露视频 性感写真 | 亚洲精品乱码久久久久久蜜桃图片 | 天天综合天天影视色香欲俱全 | 久久中文字幕免费高清 | 国产在线影院 | 女海盗斯蒂内塔的复仇2免费观看 | 91原创国产 | 97色轮| 成人免费在线视频观看 | 五月天在线视频观看 | 我和寂寞孕妇的性事 | 小sao货水好多真紧h的视频 | 美女被狂干 | 国产卡一卡二卡三卡四 | 亚洲一区二区三区不卡在线播放 | 天天做天天爽 | re99热| 九九精品免视频国产成人 | a级毛片毛片免费观看永久 a级黄色片免费 | 91中文在线| 韩国www | 公交车强校花系列小说 | 国产日本韩国不卡在线视频 | 亚洲视频免费在线看 | 久久机热视频 这里只有精品首页 | 女人张开腿 让男人桶个爽 免费观看 | 美女牲交毛片一级视频 | 日本捏胸吃奶视频免费 | 国色天香视频资源网 | 99国产精品久久久久久久... |