php下Memcached入門實例解析
本文較為詳細(xì)的講述了php下Memcached的入門知識與實例。分享給大家供大家參考。具體如下:
memcache 在什么情況下被使用,什么情況下不要使用?
你在何時應(yīng)該使用 memcache,又要在何時避免使用它?現(xiàn)在你已經(jīng)知道了,memcahced 是被設(shè)計為減輕數(shù)據(jù)庫教程端壓力的,但是你最好能制定一個良好的策略,來想辦法讓 memcached 來盡可能的緩存那些最影響性能的查詢,你可以試著為應(yīng)用中的所有查詢做一些執(zhí)行時間日志,可以幫助你來分析哪些內(nèi)容是要重點被緩存的.
現(xiàn)在假設(shè)你正在運(yùn)營一個電子商務(wù)網(wǎng)站,你可以在 memcached 中緩存產(chǎn)品的簡介、運(yùn)送信息,或者其它一些需要復(fù)雜查詢的數(shù)據(jù),等等,當(dāng)一個產(chǎn)品頁被加載的時候,上面提到的數(shù)據(jù)將會跳過數(shù)據(jù)庫查詢,直接從緩存中取得,緩存可以大大的改變你的網(wǎng)站整體性能表現(xiàn),你只需要記得在后臺更新產(chǎn)品的時候,把這些緩存一并更新就行了.
還有一些情況下,緩存數(shù)據(jù)并不是一個好主意,比如在一個數(shù)據(jù)被頻繁更新的時候,每一次數(shù)據(jù)的更新,我們都需要去同時更新緩存,緩存的命中率不高,會導(dǎo)致一些額外的性能犧牲,這種情況下,或許直接查數(shù)據(jù)庫會更好一些.
memcached 的安全性
如果你了解了 memcached 的工作流程,你可能已經(jīng)注意到了,在訪問緩存的過程中,沒有任何權(quán)限控制的相關(guān)流程,如果你的數(shù)據(jù)不是非常重要的,你大可不必?fù)?dān)心這方面的安全問題,如果你需要的話,以下幾點可以協(xié)助你更完全的使用它:
使用唯一的 key:因為在 memcached 中的數(shù)據(jù)是以一個大的數(shù)組形式存在的,所以你應(yīng)該使用唯一的 key,訪問你的數(shù)據(jù)的唯一辦法就是通過你保存數(shù)據(jù)時的 key,除此之外再沒有其它可查詢的辦法.
保證你的 memcached 器安全:因為 memcached 本身并沒有身份驗證機(jī)制,所以對 memcached 的服務(wù)器查詢,都應(yīng)該通過防火墻進(jìn)行,你可以在防火墻上設(shè)定規(guī)則,哪些服務(wù)器是允許被訪問的,哪些是不允許被訪問的.
加密你的數(shù)據(jù):你可以將數(shù)據(jù)和 key 通過加密的方式保存在 memcached 中,這需要花費一些額外的 cpu 時間,但是為了你的數(shù)據(jù)安全,在情況允許的情況下,這個方法值得你去嘗試.
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è)計有所幫助。
- php模塊memcache和memcached區(qū)別分析
- PHP Memcached應(yīng)用實現(xiàn)代碼
- php擴(kuò)展memcached和memcache的安裝配置方法
- PHP 使用memcached簡單示例分享
- PHP MemCached高級緩存配置圖文教程
- php的memcached客戶端memcached
- PHP MemCached 高級緩存應(yīng)用代碼
- php制作文本式留言板
- php實現(xiàn)網(wǎng)站留言板功能
- PHP結(jié)合Mysql數(shù)據(jù)庫實現(xiàn)留言板功能
- 基于thinkPHP框架實現(xiàn)留言板的方法
- php+Memcached實現(xiàn)簡單留言板功能示例
相關(guān)文章
php使用parse_str實現(xiàn)查詢字符串解析到變量中的方法
這篇文章主要介紹了php使用parse_str實現(xiàn)查詢字符串解析到變量中的方法,較為詳細(xì)的分析了parse_str()函數(shù)的功能及字符串解析為變量的具體用法,并總結(jié)了使用中的相關(guān)注意事項,需要的朋友可以參考下2017-02-02
PHP結(jié)合jquery ajax實現(xiàn)上傳多張圖片,并限制圖片大小操作示例
這篇文章主要介紹了PHP結(jié)合jquery ajax實現(xiàn)上傳多張圖片,并限制圖片大小操作,涉及php結(jié)合jQuery ajax文件上傳及文件屬性相關(guān)操作技巧,需要的朋友可以參考下2019-03-03
PHP判斷IP并轉(zhuǎn)跳到相應(yīng)城市分站的方法
這篇文章主要介紹了PHP判斷IP并轉(zhuǎn)跳到相應(yīng)城市分站的方法,實例分析了php解析URL及跳轉(zhuǎn)的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03
應(yīng)用開發(fā)中涉及到的css和php筆記分享
最近一周使用SAE開發(fā)一個簡單的微博應(yīng)用。應(yīng)用本身很簡單,使用php算法可以輕松實現(xiàn)。但是在調(diào)用新浪API的時候遇到很多各種各樣的麻煩。應(yīng)用到現(xiàn)在還有些不穩(wěn)定。2011-08-08
php簡單開啟gzip壓縮方法(zlib.output_compression)
網(wǎng)上的教程基本是你抄我來我抄他,不外乎加頭加尾或者自構(gòu)函數(shù)兩種寫法。實際上每個php頁面都要去加代碼——當(dāng)然也可以include引用,不過總顯得略微麻煩2013-04-04

