天天看點

memcached之memcached介紹

memcached之memcached介紹

---------

現在許多web應用都将資料儲存到RDBMS中,應用伺服器從中讀取資料并在浏覽器中顯示。但随着資料量的增大、通路的集中,就會出現RDBMS的負擔加重、資料響應惡化、網站顯示延遲等重大影響。

這時就該memcached大顯身手了。 memcached是高性能的分布式記憶體緩存伺服器。一般的使用目的是, 通過緩存資料庫查詢結果,減少資料庫通路次數,以提高動态web應用的速度、提高可擴充性。

memcached的特征

memcached作為高速運作的分布式緩存伺服器,具有以下的特點:

1.協定簡單

2.基于libevent的事件處理

3.内置記憶體存儲方式

4.memcached不互相通信的分布式

協定簡單

memcached的伺服器用戶端通信并不使用複雜的XML等格式,而 使用簡單的基于文本行的協定。是以,通過telnet也能在memcached上儲存資料、取得資料。如例:

$ telnet localhost 11211
Trying 127.0.0.1...
Connected to localhost.localdomain(127.0.0.1).
Escape character is '^]'.
set foo 0 0 3  (儲存指令)
bar 		(資料)
STORED		(結果)
get foo		(取得指令)
VALUE foo 0 3 (資料)
bar			(資料)
           

基于libevent的事件處理

libevent是個程式庫,它 将linux的epoll、BSD類作業系統的kqueue等事件處理功能封裝成統一的接口。memcached使用這個libevent庫,是以能在linux,BSD,Solaris等作業系統上發揮其高性能。

内置記憶體存儲方式

為了提高性能, memcached中儲存的資料都存儲在memcached内置的記憶體存儲空間中。由于資料僅存在于記憶體中,是以重新開機memcached、重新開機作業系統會導緻全部資料消失。另外,内容容量達到指定值之後,就基于LRU算法(LRU是Least Recently Used最近最少使用算法)自動删除不使用的緩存。memcached本身是為緩存而設計的伺服器,

是以并沒有過多考慮資料的永久性問題。

memcached不互相通信的分布式

memcached盡管是"分布式"緩存伺服器,但 伺服器端并沒有分布式功能。各個memcached不會互相通信以共享資訊。那麼, 怎樣進行分布式呢?這完全取決于用戶端的實作。

繼續閱讀