Memcache 學習筆記(一)----Memcache — Linux部署
Memcache
一、Memcache簡介(內容摘自 --百度百科)
memcache是一套分布式的高速緩存系統,由LiveJournal的Brad Fitzpatrick開發,但目前被許多網站使用以提升網站的訪問速度,尤其對於一些大型的、
需要頻繁訪問數據庫的網站訪問速度提升效果十分顯著 。這是一套開放源代碼軟件,以BSD license授權發布。官方網址:http://www.memcache.org
二、Memcache 工作流程
1.MemCache的工作流程如下:先檢查客戶端的請求數據是否在memcached中,如有,直接把請求數據返回,不再對數據庫進行任何操作;如果請求的數據不在memcached中,
就去查數據庫,把從數據庫中獲取的數據返回給客戶端,同時把數據緩存一份到memcached中(memcached客戶端不負責,需要程序明確實現);每次更新數據庫的同時更新
memcached中的數據,保證一致性;當分配給memcached內存空間用完之後,會使用LRU(Least Recently Used,最近最少使用)策略加上到期失效策略,失效數據首先被
替換,然後再替換掉最近未使用的數據。
2.Memcache是一個高性能的分布式的內存對象緩存系統,通過在內存裏維護一個統一的巨大的hash表,它能夠用來存儲各種格式的數據,包括圖像、視頻、文件以及數據庫檢索的結果
等。簡單的說就是將數據調用到內存中,然後從內存中讀取,減少數據庫訪問次數,以提高動態Web應用的速度、提高可擴展性,從而大大提高讀取速度。
3.Memcache是danga的一個項目,最早是LiveJournal 服務的,最初為了加速 LiveJournal 訪問速度而開發的,後來被很多大型的網站采用。
4.Memcached是以守護程序(監聽)方式運行於一個或多個服務器中,隨時會接收客戶端的連接和操作。
三、Memcache 特性和限制
1.在 Memcached中可以保存的item數據量是沒有限制的,只要內存足夠 。
2.Memcached單進程在32位系統中最大使用內存為2G,若在64位系統則沒有限制,這是由於32位系統限制單進程最多可使用2G內存,要使用更多內存,可以分多個端口開啟多個Memcached進程 ,
最大30天的數據過期時間,設置為永久的也會在這個時間過期,常量REALTIME_MAXDELTA 60*60*24*30控制
最大鍵長為250字節,大於該長度無法存儲,常量KEY_MAX_LENGTH 250控制
單個item最大數據是1MB,超過1MB數據不予存儲,常量POWER_BLOCK 1048576進行控制,它是默認的slab大小
最大同時連接數是200,通過 conn_init()中的freetotal進行控制,最大軟連接數是1024,通過 settings.maxconns=1024 進行控制
3.跟空間占用相關的參數:settings.factor=1.25, settings.chunk_size=48, 影響slab的數據占用和步進方式
4.memcached是一種無阻塞的socket通信方式服務,基於libevent庫,由於無阻塞通信,對內存讀寫速度非常之快。
5.memcached分服務器端和客戶端,可以配置多個服務器端和客戶端,應用於分布式的服務非常廣泛。
6.memcached作為小規模的數據分布式平臺是十分有效果的。
7.memcached是鍵值一一對應,key默認最大不能超過128個字 節,value默認大小是1M,也就是一個slabs,如果要存2M的值(連續的),不能用兩個slabs,因為兩個slabs不是連續的,無法在
內存中 存儲,故需要修改slabs的大小,多個key和value進行存儲時,即使這個slabs沒有利用完,那麽也不會存放別的數據。
8.memcached已經可以支持C/C++、Perl、PHP、Python、Ruby、Java、C#、Postgres、Chicken Scheme、Lua、MySQL和Protocol等語言客戶端。
四、memCache在Linux中的部署
Linux mamCache 安裝
安裝libevent
官方網站 : http://libevent.org/
1. 解壓
tar -zvxf libevent-2.1.8-stable.tar.gz
2. 進入目錄
cd libevent-2.1.8-stable
3. 執行
./autogen.sh
4. 配置
./configure -prefix=/usr
5. 編譯安裝
make && make install
安裝memcached
官方網站 : http://memcached.org
1. 解壓
tar -zxvf memcached-2.x.x.tar.gz
2. 進入目錄
cd memcached-2.x.x
3. 一步搞定
./configure && make && make test && sudo make install
4.啟動
memcached -d -u root -p 11211
安裝 php 擴展
1. 下載
https://github.com/websupport-sk/pecl-memcache/archive/php7.zip
2. 解壓
unzip pecl-memcache-php7.zip
3. 進入目錄
cd pecl-memcache-php7
4. 執行phpize
/usr/local/php/bin/phpize
5. 配置
./configure --with-php-config=/usr/local/php/bin/php-config
6. 編譯安裝
make && make install
7. 修改 php.ini 配置文件
快速定位php.ini和php擴展目錄的位置
phpinfo,Loaded Configuration File
vim /usr/local/php/etc/php.ini
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20151012/"
extension="memcache.so";
8. 重啟apache
/usr/local/apache2/bin/apachectl restart
Memcache 學習筆記(一)----Memcache — Linux部署