1. 程式人生 > >PHP-使用Memcache快取->解決資料庫的高併發

PHP-使用Memcache快取->解決資料庫的高併發

首先我們要知道為什麼要使用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伺服器失敗!";
        }



    }