PHP操作Memcache實例介紹
更新時間:2013年06月14日 11:14:28 作者:
memcache可以保存的數(shù)據(jù):字符串,數(shù)值,數(shù)組,對象,下面為大家介紹下如何使用PHP操作Memcache,不會的朋友可以參考下哈
b/s: 基于瀏覽器和服務(wù)器架構(gòu) web程序
c/s: QQ SVN client客戶端+ 服務(wù)器
簡單的基于文本行的協(xié)議:
redis
memcache
區(qū)別:
都是存儲數(shù)據(jù)的,memcache直接保存到內(nèi)存中,redis 保存到內(nèi)存中,關(guān)閉之后保存到硬盤中,memcache 重啟電腦,關(guān)閉服務(wù)都會造成數(shù)據(jù)丟失
(1)保存在內(nèi)存中
(2)重啟電腦,重啟服務(wù)全部數(shù)據(jù)都消失
(3)LRU算法,根據(jù)最近使用的變量,將長時間沒使用的變量刪除
PHP如何操作memcache
1,php加載擴(kuò)展php_memcache.dll 擴(kuò)展
序列化
反序列化
memcache可以保存的數(shù)據(jù):字符串,數(shù)值,數(shù)組,對象
當(dāng)我們獲得memcache中保存的對象的時候,需要提供這個類的定義,否則,提示不知道是哪個類的對象
memcahe 和 redis: redis還可以保存 hash, 數(shù)據(jù)結(jié)構(gòu)

2,memcached client操作
C/S 通過客戶端連接服務(wù)端
添加php_memcache.dll,但是我們沒有權(quán)限修改 php的配置文件
但是還想使用內(nèi)存memcache
還可以使用client操作
通過socket技術(shù),
mysql查詢
查詢的英文 進(jìn)行排序
中文-----sphinx 中文檢索引擎
關(guān)閉 memcache擴(kuò)展
使用socket技術(shù)完成php對memcache的CRUD操作
dll 封裝的函數(shù)類庫,通過這些開辟內(nèi)存空間,保存數(shù)據(jù)
那么可不可以,自己寫函數(shù)和dll封裝的一樣?
思路就是將dll中c語言開發(fā)的類庫,轉(zhuǎn)化成php語言
網(wǎng)絡(luò)界的活雷鋒,共享了php類文件
如果出現(xiàn)notice級別的錯誤,修改php error_reporting + E_ALL+NOTICE
Memcache的生存周期:
重啟memcached、重啟操作系統(tǒng)會導(dǎo)致全部數(shù)據(jù)消失。另外,內(nèi)容容量達(dá)到指定值之后,就基于LRU(LeastRecently Used)算法自動刪除不使用的緩存。
如果設(shè)置expire為0,表示永遠(yuǎn)不過期,直到機(jī)器重啟或服務(wù)重啟
欲加之罪何患無辭
將session 的數(shù)據(jù)保存到memcache中
session的數(shù)據(jù)默認(rèn)情況下,保存在file 文件中
但是我們可以通過修改php的配置,讓他保存在其他地方
1,讓memcache來處理session
2,
寸但是如何獲得session變量的時候,不再是name屬性,而是通過session_id來保存的
session_id
瀏覽器訪問 服務(wù)器的時候,服務(wù)器給瀏覽器分配session_id 然后在通過session_id找 對應(yīng)的值
如果sessaion保存的是對象的話,獲得的時候,累的信息會丟失
但是現(xiàn)在還有問題:
如果沒有權(quán)限修改php的配置怎么辦?
ini_set() 可以在php文件中,設(shè)置php的一些配置
安全問題:
現(xiàn)在誰都可以訪問我的memcache
解決之道:
防火墻
c/s: QQ SVN client客戶端+ 服務(wù)器
簡單的基于文本行的協(xié)議:
redis
memcache
區(qū)別:
都是存儲數(shù)據(jù)的,memcache直接保存到內(nèi)存中,redis 保存到內(nèi)存中,關(guān)閉之后保存到硬盤中,memcache 重啟電腦,關(guān)閉服務(wù)都會造成數(shù)據(jù)丟失
(1)保存在內(nèi)存中
(2)重啟電腦,重啟服務(wù)全部數(shù)據(jù)都消失
(3)LRU算法,根據(jù)最近使用的變量,將長時間沒使用的變量刪除
PHP如何操作memcache
1,php加載擴(kuò)展php_memcache.dll 擴(kuò)展
序列化
反序列化
memcache可以保存的數(shù)據(jù):字符串,數(shù)值,數(shù)組,對象
當(dāng)我們獲得memcache中保存的對象的時候,需要提供這個類的定義,否則,提示不知道是哪個類的對象
memcahe 和 redis: redis還可以保存 hash, 數(shù)據(jù)結(jié)構(gòu)


2,memcached client操作
C/S 通過客戶端連接服務(wù)端
添加php_memcache.dll,但是我們沒有權(quán)限修改 php的配置文件
但是還想使用內(nèi)存memcache
還可以使用client操作
通過socket技術(shù),
mysql查詢
查詢的英文 進(jìn)行排序
中文-----sphinx 中文檢索引擎
關(guān)閉 memcache擴(kuò)展
使用socket技術(shù)完成php對memcache的CRUD操作
dll 封裝的函數(shù)類庫,通過這些開辟內(nèi)存空間,保存數(shù)據(jù)
那么可不可以,自己寫函數(shù)和dll封裝的一樣?
思路就是將dll中c語言開發(fā)的類庫,轉(zhuǎn)化成php語言
網(wǎng)絡(luò)界的活雷鋒,共享了php類文件

如果出現(xiàn)notice級別的錯誤,修改php error_reporting + E_ALL+NOTICE
Memcache的生存周期:
重啟memcached、重啟操作系統(tǒng)會導(dǎo)致全部數(shù)據(jù)消失。另外,內(nèi)容容量達(dá)到指定值之后,就基于LRU(LeastRecently Used)算法自動刪除不使用的緩存。
如果設(shè)置expire為0,表示永遠(yuǎn)不過期,直到機(jī)器重啟或服務(wù)重啟
欲加之罪何患無辭
將session 的數(shù)據(jù)保存到memcache中
session的數(shù)據(jù)默認(rèn)情況下,保存在file 文件中
但是我們可以通過修改php的配置,讓他保存在其他地方
1,讓memcache來處理session
2,

寸但是如何獲得session變量的時候,不再是name屬性,而是通過session_id來保存的
session_id
瀏覽器訪問 服務(wù)器的時候,服務(wù)器給瀏覽器分配session_id 然后在通過session_id找 對應(yīng)的值
如果sessaion保存的是對象的話,獲得的時候,累的信息會丟失
但是現(xiàn)在還有問題:
如果沒有權(quán)限修改php的配置怎么辦?
ini_set() 可以在php文件中,設(shè)置php的一些配置
安全問題:

現(xiàn)在誰都可以訪問我的memcache
解決之道:
防火墻

相關(guān)文章
php中對xml讀取的相關(guān)函數(shù)的介紹一
php中對xml讀取的相關(guān)函數(shù)的介紹整理如下2008-06-06PHP面向?qū)ο蟪绦蛟O(shè)計之命名空間與自動加載類詳解
這篇文章主要介紹了PHP面向?qū)ο蟪绦蛟O(shè)計之命名空間與自動加載類,結(jié)合實例形式分析了php命名空間與自動加載類的概念、功能、使用方法與相關(guān)注意事項,需要的朋友可以參考下2016-12-12PHP采用get獲取url漢字出現(xiàn)亂碼的解決方法
這篇文章主要介紹了PHP采用get獲取url漢字出現(xiàn)亂碼的解決方法,是很多PHP程序員都曾遇到的問題,非常具有實用價值,需要的朋友可以參考下2014-11-11PHP數(shù)學(xué)運算與數(shù)據(jù)處理實例分析
這篇文章主要介紹了PHP數(shù)學(xué)運算與數(shù)據(jù)處理方法,結(jié)合實例形式分析了PHP的數(shù)據(jù)類型與基本數(shù)學(xué)運算方法,需要的朋友可以參考下2016-04-04php下將多個數(shù)組合并成一個數(shù)組的方法與實例代碼
php下將多個數(shù)組合并成一個數(shù)組的方法與實例代碼,需要的朋友可以參考下。2011-02-02