PHP memcache 記憶體緩衝 資料庫查詢 應用 高洛峰 細說PHP

來源:互聯網
上載者:User

標籤:php   memcache   記憶體緩衝   

PHP memcache在資料庫查詢中應用,減少串連資料庫的次數,降低伺服器的壓力!

/* * memcache應用說明 memory cache 記憶體緩衝 * 工作原理 *  伺服器連接埠port 11211   * MemCached 存取索引值對key => value * 1.內網訪問 * 2.設定防火牆 */         //建立memcache對象        $mem  =  new  Memcache();                //串連memcache伺服器        $host = ‘localhost‘;        $port = ‘11211‘;        $mem->connect($host,$port);        //$mem->addserver($host,$port);        //$mem->addserver(‘192.168.10.254‘, 11211); //新增一台伺服器的記憶體                $dsn           =     ‘mysql:dbname=test;host=localhost‘;        $username =    ‘root‘;        $passwd     =    ‘root‘;        $options     =    array(                                            PDO::ATTR_AUTOCOMMIT=>true,                                            PDO::ATTR_PERSISTENT=>true                                           );        //串連資料庫        try{            //建立對象            $pdo =  new PDO($dsn, $username, $passwd, $options);            //設定錯誤使用異常模式            $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);        }catch(PDOException $e){            echo "資料庫連接失敗:".$e->getMessage();            exit;        }                $statement = "select * from users where id > ? and id < ?";        //鍵名用md5()加密後 名字更規範 防止查詢語句資訊洩漏        $key = md5($statement);                //直接從記憶體要資料        $data = $mem->get($key);                //判斷是否存在$data,如果沒有才需要串連資料庫擷取資料!資料直接從記憶體擷取,實現緩衝。        if(empty($data)){        try{                               //給資料庫管理系統,編譯後等待 沒有執行                $pdostatement=$pdo->prepare($statement);                $pdostatement->execute(array(3,6));                //設定結果的模式                $pdostatement->setFetchMode(PDO::FETCH_NUM);                  $data = $pdostatement->fetchAll(PDO::FETCH_ASSOC);                //儲存在緩衝中                $mem->set($key, $data,MEMCACHE_COMPRESSED,10);                echo ‘第一次資料庫查詢!<br/>‘;        }catch (PDOException $e){            echo ‘錯誤的原因:‘.$e->getMessage();        }        }                //按表格形式輸出        echo ‘<table border="1" width="800" align="center">‘;        foreach ($data as $value){            echo ‘<tr>‘;            echo ‘<td>‘.$value[‘id‘].‘</td>‘;            echo ‘<td>‘.$value[‘username‘].‘</td>‘;            echo ‘<td>‘.$value[‘password‘].‘</td>‘;            echo ‘<td>‘.$value[‘email‘].‘</td>‘;            echo ‘</tr>‘;        }        echo ‘</table>‘;        //關閉串連        $mem->close();


本文出自 “津沙港灣” 部落格,請務必保留此出處http://11410485.blog.51cto.com/11400485/1842668

PHP memcache 記憶體緩衝 資料庫查詢 應用 高洛峰 細說PHP

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.