memcache安裝和簡單的分布式
memcached安裝:
1.安裝memcached首先得安裝libevent 我這里安裝的是libevent-2.0.18-stable.tar.gz 官網地址:http://libevent.org/
2.下載之后存放在/home/tmp/
3.解壓tar -xvf libevent-2.0.18-stable.tar.gz
4.安裝 進入cd libevent-2.0.18-stable 執行命令:./configure --prefix=/usr
5.安裝命令:make && make install (查看是否成功:ls -al /usr/lib | grep libevent 這個命令是會顯示一堆數據哦)
安裝memcached
1.下載memcached 官網地址是:http://code.google.com/p/memcached/downloads/list 我選擇的版本是:memcached-1.4.13.tar.gz
2.解壓 tar -xvf memcached-1.4.13.tar.gz ----> 進入cd memcached-1.4.13
3../configure --with-libevent=/usr
4.安裝命令:make && make install(看清過程有沒有出錯)
5.啟動一個memcached 執行命令:/usr/local/bin/memcached -d -m 1024 -u root -l 192.168.75.88 -p 10001 -c 256 -P /home/tmp/memcached.pid
以下是各個參數的解釋:
-d選項是啟動一個守護進程,
-m是分配給Memcache使用的內存數量,單位是MB,我這里是1024MB,
-u是運行Memcache的用戶,我這里是root,
-l是監聽的服務器IP地址
-p是設置Memcache監聽的端口
-c選項是最大運行的并發連接數,默認是1024 (這個看你機器負載的情況來設置)
-P是設置保存Memcache的pid文件,我這里是保存在 /home/tmp/memcached.pid
這里還做了一個分布式 、記得哦 親們 分布式是在客戶端實現,利用客戶端自帶的hash算法實現存儲到不同的服務器上
寫了一些簡單代碼
package nettyproject.com.main; import com.danga.MemCached.MemCachedClient; import com.danga.MemCached.SockIOPool; public class Test{ private static MemCachedClient mem = new MemCachedClient("pool"); static{ //目前是使用的是sockiopool連接池 還有一種方式是xmemcached方式 俗稱memcachedclientbuilder String[] ips = {"192.168.75.88:10001","192.168.75.88:10002","192.168.75.88:10003"}; SockIOPool sip = SockIOPool.getInstance("pool");//memcached的poolName必須和此name一樣 sip.setServers(ips); sip.setInitConn(50); sip.setMinConn(50); sip.setMaxConn(500); sip.setNagle(true); sip.setHashingAlg(3); sip.initialize();//調用啟動pool方法 } public static void setMemcached(String key,Object value){
我這里只有一臺服務器,所以我在一臺服務器上開了三個memcached進程
執行上面的程序之后,
看官們可以登錄到自己的服務器 、使用命令:telnet xxx.xxx.xx.x(ip) port(端口)
使用命令:get key 來查看值
這個分布式有一個很嚴重的問題、就是其中某一臺服務器宕機之后 數據是找不回來的,找了網上的資料看了下 ,說是可以通過magent代理來解決