亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > 管理維護 > 正文

MemCache介紹

2024-09-10 14:18:55
字體:
來源:轉載
供稿:網友

  memcache是一個高性能的分布式的內存對象緩存系統,通過在內存里維護一個統一的巨大的hash表,它能夠用來存儲各種格式的數據,包括圖像、視頻、文件以及數據庫檢索的結果等。Memcache是danga.com的一個項目,最早是為 LiveJournal 服務的,最初為了加速 LiveJournal 訪問速度而開發的,后來被很多大型的網站采用。目前全世界不少人使用這個緩存項目來構建自己大負載的網站,來分擔數據庫的壓力。起初作者編寫它可能是為了提高動態網頁應用,為了減輕數據庫檢索的壓力,來做的這個緩存系統。它的緩存是一種分布式的,也就是可以允許不同主機上的多個用戶同時訪問這個緩存系統, 這種方法不僅解決了共享內存只能是單機的弊端,同時也解決了數據庫檢索的壓力,最大的優點是提高了訪問獲取數據的速度!基于memcache作者對分布式cache的理解和解決方案。 memcache完全可以用到其他地方 比如分布式數據庫, 分布式計算等領域。

MemCache接口介紹

  Memcache客戶端包含兩組接口,一組是面向過程的接口,一組是面向對象的接口,具體可以參考PHP手冊 “LXXV. Memcache Functions” 這章。

  Memcache面向對象的常用接口包括:
  Memcache::connect -- 打開一個到Memcache的連接
  Memcache::pconnect -- 打開一個到Memcache的長連接
  Memcache::close -- 關閉一個Memcache的連接
  Memcache::set -- 保存數據到Memcache服務器上
  Memcache::get -- 提取一個保存在Memcache服務器上的數據
  Memcache::replace -- 替換一個已經存在Memcache服務器上的項目(功能類似Memcache::set)
  Memcache::delete -- 從Memcache服務器上刪除一個保存的項目
  Memcache::flush -- 刷新所有Memcache服務器上保存的項目(類似于刪除所有的保存的項目)

  Memcache::getStats -- 獲取當前Memcache服務器運行的狀態

Memcache協議分析

  如果你不喜歡 php_memcache.dll 擴展或者服務器器目前不支持這個擴展,那么就可以考慮自己構建,需要構建Memcahe的客戶端,要先了解Memcache協議的交互,這樣才能開發自己的客戶端,這里簡單的分析以下Memcache的協議。

 ?。ǜ敿毜膮f議內容請在Memcache服務器端的源碼的 doc/protocol.txt 文件中)

  Memcache既支持TCP協議,也支持UDP協議,不過我們這里是以TCP協議的協議作為主要考慮對象,想了解UDP協議的過程,請參考 doc/protocol.txt 文件。

  [ 錯誤指令]

  Memcache的協議的錯誤部分主要是三個錯誤提示之提示指令:

  普通錯誤信息,比如指令錯誤之類的

  ERROR

  客戶端錯誤

  CLIENT_ERROR <錯誤信息>

  服務器端錯誤

  SERVER_ERROR <錯誤信息>

  [ 數據保存指令]

  數據保存是基本的功能,就是客戶端通過命令把數據返回過來,服務器端接收后進行處理。

  指令格式:

  <命令> <鍵> <標記> <有效期> <數據長度>

  <命令> - command name

  主要是三個儲存數據的三個命令, set, add, replace

  set 命令是保存一個叫做key的數據到服務器上

  add 命令是添加一個數據到服務器,但是服務器必須這個key是不存在的,能夠保證數據不會被覆蓋

  replace 命令是替換一個已經存在的數據,如果數據不存在,就是類似set功能

  <鍵> - key

  就是保存在服務器上唯一的一個表示符,必須是跟其他的key不沖突,否則會覆蓋掉原來的數據,這個key是為了能夠準確的存取一個數據項目

  <標記> - flag

  標記是一個16位的無符號整形數據,用來設置服務器端跟客戶端一些交互的操作

  <有效期> - expiration time

  是數據在服務器上的有效期限,如果是0,則數據永遠有效,單位是秒,Memcache服務器端會把一個數據的有效期設置為當前Unix時間+設置的有效時間

  <數據長度> - bytes

  數據的長度,block data 塊數據的長度,一般在這個個長度結束以后下一行跟著block data數據內容,發送完數據以后,客戶端一般等待服務器端的返回,服務器端的返回:

  數據保存成功

  STORED

  數據保存失敗,一般是因為服務器端這個數據key已經存在了

  NOT_STORED

  [ 數據提取命令]

  從服務器端提取數據主要是使用get指令,格式是:

  get <鍵>*

  <鍵>* - key

  key是是一個不為空的字符串組合,發送這個指令以后,等待服務器的返回。如果服務器端沒有任何數據,則是返回:

  END

  證明沒有不存在這個key,沒有任何數據,如果存在數據,則返回指定格式:

  VALUE <鍵> <標記> <數據長度>

  <數據塊>

  返回的數據是以VALUE開始的,后面跟著key和flags,以及數據長度,第二行跟著數據塊。

  <鍵> -key

  是發送過來指令的key內容

  <標記> - flags

  是調用set指令保存數據時候的flags標記

  <數據長度> - bytes

  是保存數據時候定位的長度

  <數據塊> - data block

  數據長度下一行就是提取的數據塊內容

  [ 數據刪除指令]

  數據刪除指令也是比較簡單的,使用get指令,格式是:

  delete <鍵> <超時時間>

  <鍵> - key

  key是你希望在服務器上刪除數據的key鍵

  <超時時間> - timeout

  按照秒為單位,這個是個可選項,如果你沒有指定這個值,那么服務器上key數據將馬上被刪除,如果設置了這個值,那么數據將在超時時間后把數據清除,該項缺省值是0,就是馬上被刪除

  刪除數據后,服務器端會返回:

  DELETED

  刪除數據成功

  NOT_FOUND

  這個key沒有在服務器上找到

  如果要刪除所有服務器上的數據,可以使用flash_all指令,格式:

  flush_all

  這個指令執行后,服務器上所有緩存的數據都被刪除,并且返回:

  OK

  這個指令一般不要輕易使,除非你卻是想把所有數據都干掉,刪除完以后可以無法恢復的。

  [其他指令]

  如果想了解當前Memcache服務器的狀態和版本等信息,可以使用狀態查詢指令和版本查詢指令。

  如果想了解當前所有Memcache服務器運行的狀態信息,可以使用stats指令,格式

  stats

  服務器將返回每行按照 STAT 開始的狀態信息,包括20行,20項左右的信息,包括守護進程的pid、版本、保存的項目數量、內存占用、最大內存限制等等信息。

  如果只是想獲取部分項目的信息,可以指定參數,格式:

  stats <參數>

  這個指令將只返回指定參數的項目狀態信息。

  如果只是想單獨了解當前版本信息,可以使用version指令,格式:

  version

  將返回以 VERSION 開頭的版本信息

  如果想結束當前連接,使用quit指令,格式:

  quit

  將斷開當前連接

  另外還有其他指令,包括incr, decr 等,我也不太了解作用,就不做介紹了,如果感興趣,可以自己去研究。

Memcache在中型網站的使用

  使用Memcache的網站一般流量都是比較大的,為了緩解數據庫的壓力,讓Memcache作為一個緩存區域,把部分信息保存在內存中,在前端能夠迅速的進行存取。那么一般的焦點就是集中在如何分擔數據庫壓力和進行分布式,畢竟單臺Memcache的內存容量的有限的。我這里簡單提出我的個人看法,未經實踐,權當參考。

  [ 分布式應用]

  Memcache本來支持分布式,我們客戶端稍加改造,更好的支持。我們的key可以適當進行有規律的封裝,比如以user為主的網站來說,每個用戶都有User ID,那么可以按照固定的ID來進行提取和存取,比如1開頭的用戶保存在第一臺Memcache服務器上,以2開頭的用戶的數據保存在第二胎Mecache服務器上,存取數據都先按照User ID來進行相應的轉換和存取。

  但是這個有缺點,就是需要對User ID進行判斷,如果業務不一致,或者其他類型的應用,可能不是那么合適,那么可以根據自己的實際業務來進行考慮,或者去想更合適的方法。

  [ 減少數據庫壓力]

  這個算是比較重要的,所有的數據基本上都是保存在數據庫當中的,每次頻繁的存取數據庫,導致數據庫性能極具下降,無法同時服務更多的用戶,比如MySQL,特別頻繁的鎖表,那么讓Memcache來分擔數據庫的壓力吧。我們需要一種改動比較小,并且能夠不會大規模改變前端的方式來進行改變目前的架構。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久精品国产亚洲精品| 国产深夜精品福利| 中文字幕av一区二区三区谷原希美| 成人在线观看视频网站| 日韩国产欧美精品在线| 精品国产美女在线| www.国产一区| 日本国产一区二区三区| 日韩性xxxx爱| 北条麻妃99精品青青久久| 欧美精品免费播放| 欧美日韩在线免费| 国产成人精品av在线| 亚洲精品国产精品久久清纯直播| 欧美乱人伦中文字幕在线| 国产在线观看不卡| 欧美大片免费观看| 国产精品久久国产精品99gif| 日韩国产中文字幕| 国产99久久精品一区二区永久免费| 亚洲国产一区二区三区四区| 色青青草原桃花久久综合| 亚洲日韩中文字幕在线播放| 欧美性感美女h网站在线观看免费| 日本精品免费一区二区三区| 国产精品久久久久久久av大片| 上原亚衣av一区二区三区| 国产精品露脸av在线| 欧洲美女7788成人免费视频| 日韩欧美亚洲一二三区| 亚洲午夜av久久乱码| 亚洲欧美日韩一区二区三区在线| 疯狂蹂躏欧美一区二区精品| 综合av色偷偷网| 国自在线精品视频| 国产a级全部精品| 久久久久久久久久久网站| 精品亚洲永久免费精品| 精品人伦一区二区三区蜜桃网站| 欧美日韩亚洲激情| 亚洲va国产va天堂va久久| 久久精品国产v日韩v亚洲| 国内外成人免费激情在线视频网站| 欧美日本国产在线| 欧美激情中文字幕在线| 欧美一级淫片丝袜脚交| 精品国产乱码久久久久久天美| 九九热精品视频| 成人激情综合网| 91色在线观看| 国产视频在线一区二区| 亚洲日本欧美日韩高观看| 精品久久久久久久久久久久久久| 亚洲网站在线播放| 最近2019免费中文字幕视频三| 亚洲老板91色精品久久| 亚洲男女自偷自拍图片另类| 久久视频在线视频| 伊人久久久久久久久久久久久| 黑人极品videos精品欧美裸| 91性高湖久久久久久久久_久久99| 久久亚洲欧美日韩精品专区| 欧美日韩中文在线观看| 亚洲女人天堂视频| 韩国美女主播一区| 国产精品久久久久久久久久久久久| 精品视频在线播放| 亚洲国内精品在线| 亚洲色图激情小说| 久久久久久91香蕉国产| 欧美精品日韩三级| 国产成人精品亚洲精品| 久久精品国产久精国产思思| 欧美诱惑福利视频| 亚洲精品在线91| 九色成人免费视频| 亚洲精品国产精品久久清纯直播| 国产精品网站大全| 亚洲黄页网在线观看| 日韩中文字幕久久| 国产亚洲欧美日韩一区二区| 精品亚洲va在线va天堂资源站| 欧美成人免费一级人片100| 97在线视频免费观看| 高清欧美性猛交xxxx| 青青久久aⅴ北条麻妃| 狠狠躁夜夜躁久久躁别揉| 日韩视频在线观看免费| 国产精品草莓在线免费观看| 日韩欧美极品在线观看| 91精品中文在线| 成人福利在线观看| 97香蕉久久超级碰碰高清版| 久操成人在线视频| 欧美高清视频在线观看| 色老头一区二区三区在线观看| 日韩在线播放一区| 亚洲伊人久久大香线蕉av| www.99久久热国产日韩欧美.com| 日韩精品视频三区| 国产成人在线亚洲欧美| 91老司机在线| 狠狠综合久久av一区二区小说| 欧美精品午夜视频| 中文字幕不卡av| 国产日韩欧美影视| 欧美激情国产日韩精品一区18| 日韩福利在线播放| 欧美日韩精品国产| 欧美xxxx做受欧美.88| 欧美日韩成人在线视频| 日韩电影免费在线观看中文字幕| 91老司机精品视频| 亚洲精品一区中文| 亚洲最大av在线| 欧美国产日韩在线| 国产精品扒开腿爽爽爽视频| 亚洲精品一区久久久久久| 久久精品国产久精国产思思| 久久精品国产v日韩v亚洲| 亚洲色图偷窥自拍| 麻豆国产va免费精品高清在线| 亚洲国产欧美一区| 久久99精品久久久久久噜噜| 精品成人久久av| 深夜福利日韩在线看| 欧美乱大交xxxxx| 国产精品wwwwww| 91超碰中文字幕久久精品| 福利二区91精品bt7086| 亚洲男人天堂2024| 92国产精品视频| 亚洲毛片在线观看| 欧美丰满老妇厨房牲生活| 国模精品视频一区二区三区| 欧美日韩中国免费专区在线看| 精品在线小视频| 亚洲国产精品一区二区久| 欧美国产精品va在线观看| 欧美成人免费小视频| 亚洲美女www午夜| 久久伊人免费视频| 欧美日韩国产丝袜另类| 中国人与牲禽动交精品| 亚洲亚裔videos黑人hd| 中文字幕最新精品| 久久久精品欧美| 91久久久亚洲精品| 日韩精品视频免费专区在线播放| 久久深夜福利免费观看| 久久久爽爽爽美女图片| 亚洲视频在线免费观看| 久久久久久网址| 欧美性理论片在线观看片免费| 日韩av最新在线| 欧美在线观看日本一区| 97涩涩爰在线观看亚洲| 91在线视频精品| 国产精品高清在线| 亚洲视屏在线播放| 欧美午夜激情小视频| 国产在线观看一区二区三区| 久久久久久欧美| 日韩电影中文字幕在线观看|