国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

php下Memcached入門實例解析

2024-05-04 23:29:46
字體:
供稿:網(wǎng)友
這篇文章主要介紹了php下Memcached入門實例,較為詳細的分析了memcached的概念與用法,是非常實用的技巧,需要的朋友可以參考下
 
 

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

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

你在何時應(yīng)該使用 memcache,又要在何時避免使用它?現(xiàn)在你已經(jīng)知道了,memcahced 是被設(shè)計為減輕數(shù)據(jù)庫教程端壓力的,但是你最好能制定一個良好的策略,來想辦法讓 memcached 來盡可能的緩存那些最影響性能的查詢,你可以試著為應(yīng)用中的所有查詢做一些執(zhí)行時間日志,可以幫助你來分析哪些內(nèi)容是要重點被緩存的.

現(xiàn)在假設(shè)你正在運營一個電子商務(wù)網(wǎng)站,你可以在 memcached 中緩存產(chǎn)品的簡介、運送信息,或者其它一些需要復雜查詢的數(shù)據(jù),等等,當一個產(chǎn)品頁被加載的時候,上面提到的數(shù)據(jù)將會跳過數(shù)據(jù)庫查詢,直接從緩存中取得,緩存可以大大的改變你的網(wǎng)站整體性能表現(xiàn),你只需要記得在后臺更新產(chǎn)品的時候,把這些緩存一并更新就行了.

還有一些情況下,緩存數(shù)據(jù)并不是一個好主意,比如在一個數(shù)據(jù)被頻繁更新的時候,每一次數(shù)據(jù)的更新,我們都需要去同時更新緩存,緩存的命中率不高,會導致一些額外的性能犧牲,這種情況下,或許直接查數(shù)據(jù)庫會更好一些.

memcached 的安全性

如果你了解了 memcached 的工作流程,你可能已經(jīng)注意到了,在訪問緩存的過程中,沒有任何權(quán)限控制的相關(guān)流程,如果你的數(shù)據(jù)不是非常重要的,你大可不必擔心這方面的安全問題,如果你需要的話,以下幾點可以協(xié)助你更完全的使用它:

使用唯一的 key:因為在 memcached 中的數(shù)據(jù)是以一個大的數(shù)組形式存在的,所以你應(yīng)該使用唯一的 key,訪問你的數(shù)據(jù)的唯一辦法就是通過你保存數(shù)據(jù)時的 key,除此之外再沒有其它可查詢的辦法.

保證你的 memcached 器安全:因為 memcached 本身并沒有身份驗證機制,所以對 memcached 的服務(wù)器查詢,都應(yīng)該通過防火墻進行,你可以在防火墻上設(shè)定規(guī)則,哪些服務(wù)器是允許被訪問的,哪些是不允許被訪問的.

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

復制代碼代碼如下:
<?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程序設(shè)計有所幫助。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 喜德县| 慈溪市| 宜春市| 精河县| 阆中市| 开封县| 泰宁县| 冷水江市| 随州市| 兴城市| 兰坪| 北票市| 郯城县| 五指山市| 祁门县| 荆州市| 彭泽县| 南乐县| 婺源县| 仙游县| 元氏县| 子洲县| 博兴县| 遂宁市| 安仁县| 资中县| 灯塔市| 广州市| 麻栗坡县| 新乡县| 武威市| 辽源市| 惠东县| 竹北市| 苏州市| 林西县| 雅安市| 怀柔区| 庆云县| 永丰县| 永丰县|