布爾教育燕十八Memcached視頻資料分享

memcached 是一個高性能的分布式內存對象緩存系統,用于動態web應用以減輕數據庫負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提高動態、數據庫驅動網站的速度。memcached基于一個存儲鍵/值對的hashmap。其守護進程(daemon )是用c寫的,但是客戶端可以用任何語言來編寫,并通過memcached協議與守護進程通信。

Memcached 是一個高性能的分布式內存對象緩存系統,用于動態Web應用以減輕數據庫負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提高動態、數據庫驅動網站的速度。我們收集了《布爾教育燕十八Memcached視頻教程》,希望能夠幫助大家更好的學習Memcached分布式集群。

布爾教育燕十八Memcached視頻資料分享

視頻播放地址:http://www.php.cn/course/314.html

1、memcached的基本設置?
1)啟動Memcache的服務器端?
# /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid

-d選項是啟動一個守護進程,?
-m是分配給Memcache使用的內存數量,單位是MB,我這里是10MB,?
-u是運行Memcache的用戶,我這里是root,?
-l是監聽的服務器IP地址,如果有多個地址的話,我這里指定了服務器的IP地址192.168.0.200,?
-p是設置Memcache監聽的端口,我這里設置了12000,最好是1024以上的端口,?
-c選項是最大運行的并發連接數,默認是1024,我這里設置了256,按照你服務器的負載量來設定,?
-P是設置保存Memcache的pid文件,我這里是保存在 /tmp/memcached.pid,

2)如果要結束Memcache進程,執行:

# kill `cat /tmp/memcached.pid`

哈希算法將任意長度的二進制值映射為固定長度的較小二進制值,這個小的二進制值稱為哈希值。哈希值是一段數據唯一且極其緊湊的數值表示形式。如果散列一段明文而且哪怕只更改該

段落的一個字母,隨后的哈希都將產生不同的值。要找到散列為同一個值的兩個不同的輸入,在計算上是不可能的。

2、一致性Hash算法的目的有兩點:一是節點變動后其他節點受影響盡可能小;二是節點變動后數據重新分配盡可能均衡 。

3、為什么要運行 memcached ?

如果網站的高流量很大并且大多數的訪問會造成數據庫高負荷的狀況下,使用 memcached 能夠減輕數據庫的壓力。

4、適用memcached的業務場景?

1)如果網站包含了訪問量很大的動態網頁,因而數據庫的負載將會很高。由于大部分數據庫請求都是讀操作,那么memcached可以顯著地減小數據庫負載。

2)如果數據庫服務器的負載比較低但CPU使用率很高,這時可以緩存計算好的結果( computed objects )和渲染后的網頁模板(enderred templates)。

3)利用memcached可以緩存session數據、臨時數據以減少對他們的數據庫寫操作。

4)緩存一些很小但是被頻繁訪問的文件。

5)緩存Web ‘services’(非IBM宣揚的Web Services,譯者注)或RSS feeds的結果.。

5、不適用memcached的業務場景?

1)緩存對象的大小大于1MB

Memcached本身就不是為了處理龐大的多媒體(large media)和巨大的二進制塊(streaming huge blobs)而設計的。

2)key的長度大于250字符

3)虛擬主機不讓運行memcached服務

???? 如果應用本身托管在低端的虛擬私有服務器上,像vmware, xen這類虛擬化技術并不適合運行memcached。Memcached需要接管和控制大塊的內存,如果memcached管理的內存

被OS或 hypervisor交換出去,memcached的性能將大打折扣。

4)應用運行在不安全的環境中

Memcached為提供任何安全策略,僅僅通過telnet就可以訪問到memcached。如果應用運行在共享的系統上,需要著重考慮安全問題。

5)業務本身需要的是持久化數據或者說需要的應該是database

6、能夠遍歷memcached中所有的item嗎?

不能,這個操作的速度相對緩慢且阻塞其他的操作(這里的緩慢時相比memcached其他的命令)。memcached所有非調試(non-debug)命令,例如add, set, get, fulsh等無論

memcached中存儲了多少數據,它們的執行都只消耗常量時間。任何遍歷所有item的命令執行所消耗的時間,將隨著memcached中數據量的增加而增加。當其他命令因為等待(遍歷所

有item的命令執行完畢)而不能得到執行,因而阻塞將發生。

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享