memCached環境配置及客戶端調用相關說明
memcached是什么?
許多Web應用都將數據保存到DBMS中,應用服務器從中讀取數據并在瀏覽器中顯示。 但隨著數據量的增大、訪問的集中,就會出現RDBMS的負擔加重、數據庫響應惡化、 網站顯示延遲等重大影響。
memcached 是以LiveJournal 旗下Danga Interactive 公司的Brad Fitzpatric 為首開發的一款軟件。memcached是高性能的分布式內存緩存服務器,也就是可以允許不同主機上的多個用戶同時訪問這個緩存系統,這種方法不僅解決了共享內存只能是單機的弊端,同時也解決了數據庫檢索的壓力,最大的優點是提高了訪問獲取數據的速度。 一般的使用目的是,通過緩存數據庫查詢結果,減少數據庫訪問次數,以提高動態Web應用的速度、 提高可擴展性。一般情況下memcached的用途如下:
Memcached的內置內存存儲方式
為了提高性能,memcached中保存的數據都存儲在memcached內置的內存存儲空間中。由于數據僅存在于內存中,因此重啟memcached、重啟操作系統會導致全部數據消失。另外,內容容量達到指定值之后,就基于LRU(Least Recently Used)算法自動刪除不使用的緩存。memcached本身是為緩存而設計的服務器,因此并沒有過多考慮數據的永久性問題。所以我們在取值時,應考慮緩存中的數據已經被替換掉或者是程序員自已對數據置了過期時間的情況。即應判斷 get(key)==null的情況。
Memcached的架構:
memcached盡管是“分布式”緩存服務器,但服務器端并沒有分布式功能。各個memcached不會互相通信以共享信息。那么,怎樣進行分布式完全取決于客戶端的實現。
memcached的分布式:
我們采用的memcached for java client所使用的分布式算法是Consistent Hashing算法。
windows下memCached服務器端搭建:
1. 下載memcache(http://jehiah.cz/projects/memcached-win32/)的windows穩定版,解壓到某一路徑,即為memcached_home。
2. 在終端(也即cmd命令界面)下輸入 ‘%memcached_home%"memcached.exe -d install’ 安裝
3. 再輸入: ‘%memcached_home%"memcached.exe -d start’ 啟動。注意: 以后memcached將作為windows的一個服務每次開機時自動啟動,這樣服務器端已經安裝完畢了。
4. Memcached常用參數說明:
memcached -d –m 1024 -l 192.200.1.75 -p 11211
-d 以守護程序(daemon)方式運行 memcached;
-m 設置 memcached可以使用的內存大小,單位為 M;
-l 設置監聽的 IP 地址,如果是本機的話,通常可以不設置此參數;
-p 設置監聽的端口,默認為 11211,所以也可以不設置此參數;
Linux下的安裝:
memcached安裝與一般應用程序相同,configure、make、make install就行了。
$ wget http://www.danga.com/memcached/dist/memcached1.2.5.tar.gz
$ tar zxf memcached1.2.5.tar.gz
$ cd memcached1.2.5
$ ./configure
$ make
$ sudo make install
默認情況下memcached安裝到/usr/local/bin下。
從終端輸入:$ /usr/local/bin/memcached p 11211 m 64m vv即可啟動memcached
Memcached的java客戶端的使用。
1. 下載Memcached 的java客戶端包(http://www.whalin.com/memcached/#download)
2. 根據不同版本構建到工程中。
3. 由于Memcached的客戶端在處理大對象的序列化時,效率較差,通過hessian的序列化工具進行了相應模塊的替換。優化后的memcached java client 加入到項目構建路徑中即可。
4. 調用方法詳見API。
5. 依賴的包及生成后的memcached的包: