實戰Memcached快取系統(1)Memcached基礎及示例程式
尊重知識,轉載請註明本文來自:程式設計藝術家Poechant的CSDN部落格 http://blog.csdn.net/potent
1、Cache定義
(1)狹義概念:用於CPU的相對高速處理與主存(Main Memory)的相對低速處理的之間起到協調功能的硬體裝置。
(2)廣義概念:用於速度相差較大的兩種硬體之間,起到協調兩者資料傳輸速度差異的結構。
狹義概念來自於Cache自1967出現以來較長時間內的應用場景。因為CPU的資料處理速度,要遠遠高於主存,所以在CPU和主存之間會有快取記憶體裝置,甚至是多級快取裝置。而廣義概念,則是目前已經被廣泛接受的一種定義,且廣義概念中,Cache不再只侷限於硬體,也可以是軟體。比如用於網路相對低速傳輸與磁碟相對高速傳輸之間的速度差異協調。
2、Cache的本質原理
可以一句話概括,就是:Cache把要到慢速裝置中取的資料預先放到快速裝置中。
3、幾種型別的Cache
(1)CPU Cache:置於CPU和主存之間,用於加速CPU對主存的相對慢速操作。
(2)Browser Cache:置於客戶端與伺服器之間,用於加速客戶端對伺服器的相對慢速操作。
(3)Server Cache:置於網路請求與本地檔案之間,用於加速網路請求對本地檔案的相對慢速操作。
(4)CDN:CDN即Content Delivery Network,在各地設定的節點Cache,加速使用者對服務網路的相對慢速操作。
(5)Database Cache
(6)OS Cache:記憶體中存在的對於硬碟讀寫的緩衝區域。
4、What is Memcached?
Memcached是一個免費開源、高效能、分散式的記憶體物件快取系統。Memcached是在記憶體中,為特定資料(字串或物件)構建key-value的小塊資料儲存。
5、下載Memcached的伺服器端軟體
Windows平臺版本下載:http://splinedancer.com/memcached-win32/memcached-1.2.4-Win32-Preview-20080309_bin.zip
Linux平臺版本下載:http://memcached.googlecode.com/files/memcached-1.4.10.tar.gz
6、在伺服器上部署Memcached Server
以下以Windows平臺為例:
參考:http://www.codeforest.net/how-to-install-memcached-on-windows-machine
下載下來的Windows版本解壓到C:/memcached/
在控制檯輸入命令安裝:
c:/memcached/memcached.exe -d install
啟動:
c:/memcached/memcached.exe -d start
或:
net start "memcached Server"
預設的快取大小為64M,如果不夠用,請開啟登錄檔,找到:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/memcached Server .
將其內容修改為:
“C:/memcached/memcached.exe” -d runservice -m 512
7、下載Memcached的客戶端API包
下載地址:http://spymemcached.googlecode.com/files/memcached-2.5.jar
8、編寫一個Java資料類
package com.sinosuperman.memcached;
import java.io.Serializable;
public class User implements Serializable{
private static final long serialVersionUID = -372274003834027815L;
String userId;
public User(String userId) {
super();
this.userId = userId;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
@Override
public String toString() {
// TODO Auto-generated method stub
StringBuffer sb=new StringBuffer();
sb.append("userId="+this.userId);
return sb.toString();
}
}
9、編寫一個Memcached的客戶端
package com.sinosuperman.memcached;
import java.io.IOException;
import java.net.InetSocketAddress;
import net.spy.memcached.MemcachedClient;
public class TestMemcached {
public static void main(String[] args) throws IOException {
MemcachedClient cache = new MemcachedClient(new InetSocketAddress("127.0.0.1", 11211));
for (int i = 1; i < 10; i++) {
cache.set("T0001" + i, 3600, new User(i + ""));
}
User myObject = (User) cache.get("T00011");
System.out.println("Get object from mem :" + myObject);
}
}
10、執行測試
執行結果應該如下:
2011-12-15 17:25:30.276 INFO net.spy.memcached.MemcachedConnection: Added {QA sa=/127.0.0.1:11211, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue
2011-12-15 17:25:30.292 INFO net.spy.memcached.MemcachedConnection: Connection state changed for sun.nio.ch.SelectionKeyImpl@c62080
Get object from mem :userId=1
尊重知識,轉載請註明本文來自:程式設計藝術家Poechant的CSDN部落格 http://blog.csdn.net/poechant
-
相關文章
- 實戰Memcached快取系統(2)Memcached Java API基礎之MemcachedClient快取JavaAPIclient
- 實戰Memcached快取系統(7)Memcached的一些基礎FAQ快取
- 實戰Memcached快取系統(5)Memcached的CAS程式例項快取
- 實戰Memcached快取系統(4)Memcached的CAS協議快取協議
- 實戰Memcached快取系統(3)Memcached配置引數初解快取
- 實戰Memcached快取系統(6)Memcached CAS的多執行緒程式例項快取執行緒
- 分散式快取系統之Memcached分散式快取
- 實戰Memcached快取系統(8)Memcached非同步實時讀寫問題的解決方案SAC快取非同步
- 快取: Memcached和terracotta快取
- Memcached 分散式快取實現原理分散式快取
- 伺服器後端開發系列——《實戰Memcached記憶體快取系統》伺服器後端記憶體快取
- memcached資料庫快取資料庫快取
- 記憶體快取系統memcached與redis實現的對比記憶體快取Redis
- memcached快取知識簡單梳理快取
- C#呼叫Couchbase中的Memcached快取C#快取
- 為 Memcached 構建基於 Go 的 Operator 示例Go
- 如何利用memcached和wcf實現一個快取服務快取
- 分散式快取伺服器Memcached介紹分散式快取伺服器
- 系統快取全解析7:第三方分散式快取解決方案 Memcached和Cacheman快取分散式
- Shopify使用Memcached而不是Redis快取提升20%效能Redis快取
- Linux系統中部署memcachedLinux
- Memcached實戰之複製----基於repcached的主從【轉】PCA
- 輕量級 memcached快取代理 twemproxy實踐快取
- Memcached
- memcached安裝及.NET中的Memcached.ClientLibrary使用詳解client
- 對比Memcached和Redis,誰才是適合你的快取?Redis快取
- Rust編寫的Memcached快取替代品:memc.rsRust快取
- 初試redis,比memcached快10倍速Redis
- Memcached筆記——(三)Memcached使用總結筆記
- LNMP 分散式叢集(四):Memcached 快取伺服器的搭建LNMP分散式快取伺服器
- gmcache一個用go寫的分散式快取,類似memcachedGo分散式快取
- 使用Memcached實現Session共享Session
- memcached 分散式實現原理分散式
- Redis的配置及與memcached區別Redis
- Memcached安裝及啟動指令碼指令碼
- Memcached 協議協議
- Memcached 原理剖析
- 安裝 Memcached