MemCache是一個自由、源碼開放、高性能、分佈式的分佈式內存對象緩存系統,MemCaChe是一個存儲鍵值對的HashMap,在內存中對任意的數據(好比字符串、對象等)使用key-value存儲,數據能夠來自數據庫調用、API調用,或者頁面渲染的結果。MemCache設計理念就是小而強大,它簡單的設計促進了快速部署、易於開發並解決面對大規模的數據緩存的許多難題php
主要用於動態Web應用以減輕數據庫的負載。
它經過在內存中緩存數據和對象來減小讀取數據庫的次數,
從而提升了網站訪問的速度。html
memcache處理的原子是每個key、val,key會經過一個hash錶轉換成hash的key,便於查找對比以及竟可能的作到散列。同時mem用的是一個二級散列,經過一個hash表來維護。laravel
更改cache.php中cache_driver值爲memcached。數據庫
use Cache; #控制器中使用緩存 public function memcache(){ Cache::put('memcache','hello,world',1); #寫入緩存(key,value,time) dd(Cache::get('memcache')); #獲取緩存 }
參考:laravel操做memcache筆記! - 簡書
https://www.jianshu.com/p/2a3baf32348a緩存
參考:memcache如何在項目中使用_百度經驗
https://jingyan.baidu.com/article/ca2d939d1c74fceb6c31ce8f.html服務器
當用戶發生一個動態請求的時候,先去memcache服務器裏面查詢緩存數據,當首次查詢的時候,memcache裏面確定是沒有數據的,這個時候須要php程序去MySQL數據庫裏面獲取數據,將獲取先緩存一份到memcache服務器裏面,在把數據返回給用戶。當第二次發生相同的動態的請求的時候,這個時候因爲上一次memcache裏面已經緩存了對應的查詢數據,這個memcache就能夠直接的返回數據,而不須要MySQL數據庫的參與,減小了MySQL數據庫的壓力。對於這種架構來講,因爲memcache是處於旁邊的,這種緩存系統叫作旁路式緩存系統。網絡
對於下面這種結構,緩存數據的獲取不依賴php程序,緩存系統自身有能力能夠從MySQL數據庫裏面獲取數據,在將數據緩存到本地的緩存系統裏面,下次直接從緩存系統裏面返回數據的這種架構叫作穿透式緩存系統。架構