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

首頁 > 開發 > PHP > 正文

Memcached 入門代碼實例

2024-05-04 21:48:55
字體:
來源:轉載
供稿:網友

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

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

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

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

memcached 的安全性

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

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

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

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

  1. <?php 
  2.   
  3. class mycache 
  4.   private $cache
  5.   function  __construct() 
  6.   { 
  7.     $this->cache = new memcache(); 
  8.     // you can replace localhost by memcached server ip addr and port no. 
  9.     $this->cache->connect('localhost', 10987); 
  10.   }//開源代碼Vevb.com 
  11.   
  12.   function get_data($key
  13.   { 
  14.     $data = $this->cache->get($key); 
  15.     if($data != null) 
  16.       return $data
  17.     else 
  18.     { 
  19.       if($this->cache->getresultcode() == memcached::res_notfound) 
  20.       { 
  21.         //do the databse query here and fetch data 
  22.         $this->cache->set($key,$data_returned_from_database); 
  23.       } 
  24.       else 
  25.       { 
  26.         error_log('no data for key '.$key); 
  27.       } 
  28.     } 
  29.   } 
  30.   
  31. $cache = mycache(); 
  32. $cache->get_data('foo'); 
  33.   
  34. ?>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 崇左市| 子洲县| 苏尼特左旗| 施秉县| 开原市| 平利县| 武冈市| 襄垣县| 内黄县| 桓仁| 保定市| 泰和县| 晋中市| 蕉岭县| 泽库县| 宜川县| 广水市| 盐城市| 沁水县| 阿坝| 江口县| 舟山市| 曲松县| 胶州市| 景泰县| 竹溪县| 叶城县| 新绛县| 抚宁县| 西丰县| 安新县| 札达县| 临夏市| 渭源县| 岳阳县| 大名县| 观塘区| 灵丘县| 武平县| 潜江市| 武平县|