一.memcache快取
概念:memcache是乙個高效能的分布式的記憶體物件快取系統,通過在記憶體裡維護乙個統一的巨大的hash表
到記憶體中,然後從記憶體中訪問,從而大大提高讀取速度
應用:memcache快取系統最主要的就是為了提高動態網頁的應用,分擔資料庫檢索的壓力,對於**流量比較大
的,可以使用memcache緩解資料庫的壓力,主要的焦點集中在以下兩個方面:
1.使用memcache作為中間快取層減少資料庫壓力
2.memcache分布式應用
二.安裝
然後以管理員身份啟動cmd,並切換至memcached.exe檔案所在目錄下
用黑視窗開啟資料夾 前面要帶cd 關鍵字
memcached.exe -d install 安裝
memcached.exe -d uninstall 解除安裝
memcached.exe -d start
啟動memcached.exe -d stop
停止memcached.exe -h 獲取幫助
三.telnet操作memcache
telnet 關鍵字
如果想用這個關鍵字操作一些命名 windows7下預設模式是關閉的
所以要在控制面板->程式與功能->開啟或者關閉windows功能->開啟telnet關鍵字
telnet服務端開啟 遠端可以通過這個命令來訪問主機
telnet客戶端開啟 可以遠端訪問主機 需要埠號/ip
telnet協議是tcp/ip協議族中的一員,是internet遠端登陸服務的標準協議和主要方式,他為使用者提供了
在本地計算機上完成遠端主機工作的能力,在終端使用者的電腦上使用telnet程式,用他鏈結到伺服器,終端
使用者可以在telnet程式中輸入命令,這些命令會在伺服器上執行,就像直接在伺服器的控制台上輸入一樣,
可以在本地控**務器
要開始乙個telnet會話,必須輸入使用者名稱和密碼來登陸伺服器,telnet是常用的遠端控制web伺服器的方法
鏈結到memcache
memcache快取埠號 11211
telnet 127.0.0.1 11211
退出quit
常用的命令操作
stats:當前所有memcached伺服器執行的狀態資訊
add:新增乙個資料到伺服器
add 名 壓縮標記 儲存時間 儲存長度
值在黑視窗新增資料 值 的時候必須回車另起一行來寫
set:替換乙個以存在的資料,如果資料不存在,則和add命令相同
set 名 壓縮標記 儲存時間 儲存長度
值get:從伺服器端提取指定的資料
get 名
delete:刪除指定的單個資料,如果要清除所有的資料,可以使用flush_all
delete 名
flush_all
stats cachedump 標記 顯示記錄數(0表示顯示全部):簡單的遍歷
stats items 檢視記錄
stats cachedump 1(壓縮標記) 0
stats狀態資訊
stat pid 1552 服務程序的程序id
stat uptime 3792
服務從啟動到當前所經過的時間,單位是秒。
stat time 1262517674 伺服器所在主機當前系統的時間,單位是秒。
stat version 1.2.6 元件的版本。這裡是我當前使用的1.2.6。
stat pointer_size 32 伺服器所在主機作業系統的指標大小,一般為32或64.
stat curr_items 1
表示存放當前的所有快取物件的數量。不包括已經從快取中刪除的物件。
stat total_items 2 表示從啟動到當前,系統儲存過的所有物件數量,包括已經刪除的物件。
stat bytes 593
表示系統儲存快取物件所使用的儲存空間,單位為位元組。
stat curr_connections 2
表示當前系統開啟的連線數。
stat total_connections 28
表示從memcached服務啟動到當前時間,系統開啟過的連線的總數。
stat get_hits 2
表示獲取資料成功的次數。
stat get_misses 1
表示獲取資料失敗的次數。
stat bytes_read 1284
memcached伺服器從網路讀取的總的位元組數。
stat bytes_written 5362
memcached伺服器傳送到網路的總的位元組數。
stat limit_maxbytes 67108864 memcached服務快取允許使用的最大位元組數。預設為67108864位元組,也就是64m
四.使用php操作memcache
啟動memcache擴充套件: 基於php源生開發
鏈結memcache
memcache的增刪改查操作
安裝memcache擴充套件
將對應版本的memcache.dll檔案放到php擴充套件目錄下
修改php.ini開啟memcache庫擴充套件
extension_dir = "f:/wamp/php-5.4.45/ext"
extension=php_memcache.dll
檢測memcache庫擴充套件是否開啟成功
bool extension_loaded('mycache');
連線memcache
先例項化memcache類
例:$memcache=new memcache;
連線memcache伺服器
connect() 連線
例:ip和埠號:
$memcache->connect('127.0.0.1',11211)
關閉伺服器連線
$memcache->close()
增刪改查操作
新增 :add("名",值,是否壓縮,生存時間)
$memcache->add("test1","this is a test",false,0);
$memcache->add("test2",array("one","two"),memcache_compressed,60*60*24*30);
$memcache->add("test3",new test(),memcache_compressed,time()+60*60*24*31);
檢視:get("名")
$memcache->get("test1");
$memcache->get(array("test1","test2","test3"))
更新:set("名",值,是否壓縮,生存時間)
注:名稱存在則更新,不存在則為新增,如果只想更新可以使用replace
$memcache->set("test1","this is a test1",false,0);
刪除:delete("名" [, int $timeout = 0 ])
$memcache->delete("test1",5);
五.建立分布式memcache伺服器連線池
$memcache = new memcache;
$memcache->addserver('172.16.1.1', 11211);
$memcache->addserver('172.16.1.2', 11211);
$memcache->addserver('172.16.1.3', 11211);
memcache 快取失效
具體是通過 懶惰 機制刪除該過期資料,與過期session的刪除類似。memcache的過期資料刪除也是懶惰機制實現,如果有乙個key過期了,其本身不會馬上被刪除,而是我們呼叫get 方法獲取資料的同時會刪除該過期的資料。如果儲存的資料超過memcache最大的儲存限制 預設是64m 此時還繼續存入...
MemCache快取雪崩現象
memcache快取雪崩現象 什麼是快取的雪崩現象 快取雪崩一般是由某個快取節點失效,導致其他節點的快取命中率下降,快取中缺失的資料 memcache經典場景,當有乙個客戶端的服務請求過來的時候,首先去查memcache,memcache裡面是否快取過了這個資料,如果沒有這個資料,我們就去資料庫查詢...
Django 快取框架 memcache
0 0 原來.翻譯 gashero 目錄主要取自 memcached 的主頁。memcached是乙個高效能的 分布式記憶體物件快取系統,儘管很通用,但是用來加速web應用 降低資料庫負載時比較多。danga interactive 開發了memcached用來提高 livejournal.com ...