php下Memcached入門執行個體解析_php技巧

來源:互聯網
上載者:User

本文較為詳細的講述了php下Memcached的入門知識與執行個體。分享給大家供大家參考。具體如下:

memcache 在什麼情況下被使用,什麼情況下不要使用?

你在何時應該使用 memcache,又要在何時避免使用它?現在你已經知道了,memcahced 是被設計為減輕資料庫教程端壓力的,但是你最好能制定一個良好的策略,來想辦法讓 memcached 來儘可能的緩衝那些最影響效能的查詢,你可以試著為應用中的所有查詢做一些執行時間日誌,可以協助你來分析哪些內容是要重點被緩衝的.

現在假設你正在運營一個電子商務網站,你可以在 memcached 中緩衝產品的簡介、運送資訊,或者其它一些需要複雜查詢的資料,等等,當一個產品頁被載入的時候,上面提到的資料將會跳過資料庫查詢,直接從緩衝中取得,緩衝可以大大的改變你的網站整體效能表現,你只需要記得在後台更新產品的時候,把這些緩衝一併更新就行了.

還有一些情況下,快取資料並不是一個好主意,比如在一個資料被頻繁更新的時候,每一次資料的更新,我們都需要去同時更新緩衝,緩衝的命中率不高,會導致一些額外的效能犧牲,這種情況下,或許直接查資料庫會更好一些.

memcached 的安全性

如果你瞭解了 memcached 的工作流程,你可能已經注意到了,在訪問緩衝的過程中,沒有任何許可權控制的相關流程,如果你的資料不是非常重要的,你大可不必擔心這方面的安全問題,如果你需要的話,以下幾點可以協助你更完全的使用它:

使用唯一的 key:因為在 memcached 中的資料是以一個大的數組形式存在的,所以你應該使用唯一的 key,訪問你的資料的唯一辦法就是通過你儲存資料時的 key,除此之外再沒有其它可查詢的辦法.

保證你的 memcached 器安全:因為 memcached 本身並沒有身分識別驗證機制,所以對 memcached 的伺服器查詢,都應該通過防火牆進行,你可以在防火牆上設定規則,哪些伺服器是允許被訪問的,哪些是不允許被訪問的.

加密你的資料:你可以將資料和 key 通過加密的方式儲存在 memcached 中,這需要花費一些額外的 cpu 時間,但是為了你的資料安全,在情況允許的情況下,這個方法值得你去嘗試.

複製代碼 代碼如下:
<?php
class mycache
{
  private $cache;
  function  __construct()
  {
    $this->cache = new memcache();
    // you can replace localhost by memcached server ip addr and port no.
    $this->cache->connect('localhost', 10987);
  }
 
  function get_data($key)
  {
    $data = $this->cache->get($key);
    if($data != null)
      return $data;
    else
    {
      if($this->cache->getresultcode() == memcached::res_notfound)
      {
        //do the databse query here and fetch data
        $this->cache->set($key,$data_returned_from_database);
      }
      else
      {
        error_log('no data for key '.$key);
      }
    }
  }
}
$cache = mycache();
$cache->get_data('foo');
?>

希望本文所述對大家的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.