今天 ,心血來潮 想安裝下memcached 先給自己測試一下。
首先 從memcached 官網中下載 memcached-1.4.15
首先memcached 安裝需要libevent
從官網中下載:
libevent-2.0.21-stable.tar.gz
解壓 安裝:
1 | # tar zxvf <span>libevent-2.0.21-stable.tar.gz</span><span> </span> # cd libevent-1.2 |
2 | # ./configure --prefix=/usr |
判斷memcached是否安裝成功
1 | # ls -al /usr/lib | grep libevent |
結果如下:
.安裝memcached,同時需要安裝中指定libevent的安裝位置
1 | # tar zxvf memcached-1.4.15.tar.gz |
3 | # ./configure --with-libevent=/usr |
測試是否成功安裝memcached:
1 | # ls -al /usr/local/bin/mem* |
2 | -rwxr-xr-x 1 root root 137986 11?? 12 17:39 /usr/ local /bin/memcached |
3 | -rwxr-xr-x 1 root root 140179 11?? 12 17:39 /usr/ local /bin/memcached-debug |
這個時候 我們需要來啟動memcached了。
1 | usr/ local /bin/memcached -d -m 100 -u root -p 12000 -c 1000 -P /tmp/memcached.pid |
我們來分析下參數代表的含義:
2 | -m是分配給Memcache使用的內存數量,單位是MB,我這里是10MB, |
3 | -u是運行Memcache的用戶,我這里是root, |
4 | -l是監(jiān)聽的服務器IP地址,如果有多個地址的話,我這里指定了服務器的IP地址 192.168 . 0.200 , |
5 | -p是設置Memcache監(jiān)聽的端口,我這里設置了 12000 ,最好是 1024 以上的端口, |
6 | -c選項是最大運行的并發(fā)連接數,默認是 1024 ,我這里設置了 256 ,按照你服務器的負載量來設定, |
7 | -P是設置保存Memcache的pid文件,我這里是保存在 /tmp/memcached.pid, |
當我啟動進程 調用
memcached 已經啟動了 。
好 現在我想用telnet命令來測試一下
可是 當我用telnet時 發(fā)現竟然顯示
1 | - bash : telent: command not found |
馬上百度之
很多人說是因為沒有裝 telnet服務 。
所以調用yum命令來安裝 telnet
另外需要配置:
01 | [root@localhost memcached-1.4.15] # vi /etc/xinetd.d/telnet |
04 | # description: The telnet server serves telnet sessions; it uses \ |
05 | # unencrypted username/password pairs for authentication. |
12 | server = /usr/sbin/ in .telnetd |
13 | log_on_failure += USERID |
這里需要將disable 從 yes 修改成 no
需要啟動服務
現在 我用 xmemcached來測試一下
測試代碼如下:
04 | import net.rubyeye.xmemcached.MemcachedClient; |
05 | import net.rubyeye.xmemcached.MemcachedClientBuilder; |
06 | import net.rubyeye.xmemcached.XMemcachedClientBuilder; |
07 | import net.rubyeye.xmemcached.exception.MemcachedException; |
08 | import net.rubyeye.xmemcached.utils.AddrUtil; |
10 | import java.io.IOException; |
11 | import java.util.HashMap; |
12 | import java.util.concurrent.TimeoutException; |
19 | * To change this template use File | Settings | File Templates. |
21 | public class SimpleTest { |
23 | public static void main(String[] args) throws IOException { |
24 | MemcachedClientBuilder builder = new XMemcachedClientBuilder( |
25 | AddrUtil.getAddresses( "192.168.56.1:12001" )); |
26 | MemcachedClient memcachedClient = builder.build(); |
28 | memcachedClient.set( "hello" , 0 , "Hello,xmemcached" ); |
29 | String value = memcachedClient.get( "hello" ); |
30 | System.out.println( "hello=" + value); |
33 | boolean flag = memcachedClient.add( "hello" , 0 , "Hello,xmemcached" ); |
34 | System.out.println( "flag==" + flag); |
36 | memcachedClient.delete( "hello" ); |
37 | value = memcachedClient.get( "121709_300" ); |
38 | System.out.println( "value=" + value); |
40 | HashMap map = new HashMap(); |
41 | map.put( "key" , "123" ); |
42 | memcachedClient.set( "map" , 0 ,map) ; |
44 | System.out.println(memcachedClient.get( "map" ).getClass()); |
46 | } catch (MemcachedException e) { |
47 | System.err.println( "MemcachedClient operation fail" ); |
49 | } catch (TimeoutException e) { |
50 | System.err.println( "MemcachedClient operation timeout" ); |
52 | } catch (InterruptedException e) { |
56 | // //close memcached client |
57 | // memcachedClient.shutdown(); |
58 | // } catch (IOException e) { |
59 | // System.err.println("Shutdown MemcachedClient fail"); |
60 | // e.printStackTrace(); |
結果如下:
[WARN ]2013-03-09 20:14:19416 net.rubyeye.xmemcached.XMemcachedClient XMemcachedClient use Text protocol
[INFO ]2013-03-09 20:14:19465 com.google.code.yanf4j.nio.impl.SelectorManager Creating 8 reactors...
[WARN ]2013-03-09 20:14:19507 com.google.code.yanf4j.core.impl.AbstractController The Controller started at localhost/127.0.0.1:0 ...
[WARN ]2013-03-09 20:14:19521 com.google.code.yanf4j.core.impl.AbstractController Add a session: 192.168.56.1:12001
hello=Hello,xmemcached
flag==false
value=null
class java.util.HashMap
ok 測試工作準備就緒 可以開始 寫個類似memcached-client的小東西了 練練手 下兩周的計劃。
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現有害或侵權內容,請
點擊舉報。