PHP操作Memcache例項介紹

2021-09-24 10:21:41 字數 1692 閱讀 2276

b/s: 基於瀏覽器和伺服器架構 web程式 

c/s: qq svn client客戶端+ 伺服器

簡單的基於文字行的協議:

redis 

memcache 

區別:

都是儲存資料的,memcache直接儲存到記憶體中,redis 儲存到記憶體中,關閉之後儲存到硬碟中,memcache 重啟電腦,關閉服務都會造成資料丟失 

(1)儲存在記憶體中 

(2)重啟電腦,重啟服務全部資料都消失 

(3)lru演算法,根據最近使用的變數,將長時間沒使用的變數刪除

php如何操作memcache

1,php載入擴充套件php_memcache.dll 擴充套件 

序列化 

反序列化 

memcache可以儲存的資料:字串,數值,陣列,物件 

當我們獲得memcache中儲存的物件的時候,需要提供這個類的定義,否則,提示不知道是哪個類的物件 

memcahe 和 redis: redis還可以儲存 hash, 資料結構 

2,memcached client操作 

c/s 通過客戶端連線服務端 

新增php_memcache.dll,但是我們沒有許可權修改 php的配置檔案 

但是還想使用記憶體memcache 

還可以使用client操作 

通過socket技術, 

mysql查詢 

查詢的英文 進行排序 

中文-----sphinx 中文檢索引擎 

關閉 memcache擴充套件 

使用socket技術完成php對memcache的crud操作 

dll 封裝的函式類庫,通過這些開闢記憶體空間,儲存資料 

那麼可不可以,自己寫函式和dll封裝的一樣? 

思路就是將dll中c語言開發的類庫,轉化成php語言 

網路界的活雷鋒,共享了php類檔案 

如果出現notice級別的錯誤,修改php error_reporting + e_all+notice 

memcache的生存週期: 

重啟memcached、重啟作業系統會導致全部資料消失。另外,內容容量達到指定值之後,就基於lru(leastrecently used)演算法自動刪除不使用的快取。 

如果設定expire為0,表示永遠不過期,直到機器重啟或服務重啟 

欲加之罪何患無辭 

將session 的資料儲存到memcache中 

session的資料預設情況下,儲存在file 檔案中 

但是我們可以通過修改php的配置,讓他儲存在其他地方 

1,讓memcache來處理session 

2,寸但是如何獲得session變數的時候,不再是name屬性,而是通過session_id來儲存的 

session_id 

瀏覽器訪問 伺服器的時候,伺服器給瀏覽器分配session_id 然後在通過session_id找 對應的值 

如果sessaion儲存的是物件的話,獲得的時候,累的資訊會丟失 

但是現在還有問題: 

如果沒有許可權修改php的配置怎麼辦? 

ini_set() 可以在php檔案中,設定php的一些配置 

安全問題: 

現在誰都可以訪問我的memcache 

解決之道: 

防火牆

memcache使用例項 PHP

首先,判斷 memcache 中是否存在key,如果有則從memcache中取值 如果沒有相應的key,則從去網頁中抓取資料,如果抓取成功,則存入db,寫入memcache並讀取,如果抓取不成功,則直接 mysql 中取值,並將取出來的值放入memcache。include inc common.i...

memcache使用例項 PHP

首先,判斷 memcache 中是否存在key,如果有則從memcache中取值 如果沒有相應的key,則從去網頁中抓取資料,如果抓取成功,則存入db,寫入memcache並讀取,如果抓取不成功,則直接 mysql 中取值,並將取出來的值放入memcache。php view plain copy ...

php操作Memcache示例

例項化 mem new memcache 新建連線 if mem connect 127.0.0.1 11211 增加 1.增加乙個字串 if mem add key1 abc memcache compressed,60 2.增加乙個數字 if mem add key2 100,memcache ...