PHP-使用Memcache快取->解決資料庫的高併發
阿新 • • 發佈:2019-01-13
首先我們要知道為什麼要使用Memcache來減少資料庫的請求次數:
1.關係型資料庫本身就是個龐然大物,處理過程非常耗時(如解析SQL語句,事務處理等)。如果對關係型資料庫進行高併發讀寫(每秒上萬次的訪問),那麼它是無法承受的。
2.對於大型的SNS網站,每天有上千萬次的資料產生(如twitter, 新浪微博)。對於關係型資料庫,如果在一個有上億條資料的資料表種查詢某條記錄,效率將非常低。
通過以下程式碼實現Memcache快取資料庫裡的資料:
這是一個laravel5.7框架,首先我們要引用它的一個類: use Memcache; 以下是具體程式碼實現 public function mem() { $mem=new Memcache(); //例項化這個memcache物件 if($mem->connect("127.0.0.1")) { //判斷跟本機連線是否成功 if($mem->get('list')){ //檢測有沒有快取過這個key // echo '有'; $hq=$mem->get('list'); //把這個key對應的val取出 print_r($hq); }else{ //如果沒有的話 //echo '沒有'; $list=DB::table('hy_user')->get(); //就把表裡的資料取出來 $mem->add('list',$list,0); //新增這個key並且把表裡資料設成它的val下次再執行在上面檢測就有這個key,so就不用連線資料庫了 $hq=$mem->get('list'); //把這個key對應的val取出 print_r($hq); } }else{ echo"連線Memcache伺服器失敗!"; } }