<PHP開發APP介面視頻教程>採用PHP物件導向思想講解了如何開發APP伺服器端介面,課程循序漸進,通俗易懂,對重點痛點技術做了詳細講解,通過學習本課程能讓你學會如何開APP介面,你會受益良多。
課程播放地址:http://www.php.cn/course/404.html
該老師講課風格:
教師講課生動形象,機智詼諧,妙語連珠,動人心弦。一個生動形象的比喻,猶如畫龍點睛,給學生開啟智慧之門;一種恰如其分的幽默,引來學生會心的微笑,如飲一杯甘醇的美酒,給人以回味和留戀;哲人的警句、文化的箴言不時穿插於講述中間,給人以思考和警醒。
本視頻中較為痛點是Memcache和Redis緩衝技術了:
Memcache
Memcache是一個高效能,分布式記憶體對象緩衝系統,通過在記憶體裡維護一個統一的巨大的hash表,它能夠用來儲存各種格式的資料,包括映像、視頻、檔案以及資料庫檢索的結果等。簡單的說就是將資料調用到記憶體中,然後從記憶體中讀取,從而大大提高讀取速度。
Memcache特性:
(1)使用實體記憶體作為緩衝區,可獨立運行在伺服器上。每個進程最大2G,如果想緩衝更多的資料,可以開闢更多的memcache進程(不同連接埠)或者使用分布式memcache進行緩衝,將資料緩衝到不同的物理機或者虛擬機器上。
(2)使用key-value的方式來儲存資料,這是一種單索引的結構化資料群組織形式,可使資料項目查詢時間複雜度為O(1)。
(3)協議簡單:基於文本行的協議,直接通過telnet在memcached伺服器上可進行存取資料操作,簡單,方便多種緩衝參考此協議;
(4)基於libevent高效能通訊:Libevent是一套利用C開發的程式庫,它將BSD系統的kqueue,Linux系統的epoll等事件處理功能封裝成一個介面,與傳統的select相比,提高了效能。
(5)內建的記憶體管理方式:所有資料都儲存在記憶體中,存取資料比硬碟快,當記憶體滿後,通過LRU演算法自動刪除不使用的緩衝,但沒有考慮資料的容災問題,重啟服務,所有資料會丟失。
(6)分布式:各個memcached伺服器之間互不通訊,各自獨立存取資料,不共用任何資訊。伺服器並不具有分布式功能,分布式部署取決於memcache用戶端。
(7)緩衝策略:Memcached的緩衝策略是LRU(最近最少使用)到期失效策略。在memcached記憶體儲資料項目時,可以指定它在緩衝的失效時間,預設為永久。當memcached伺服器用完分配的內時,失效的資料被首先替換,然後也是最近未使用的資料。在LRU中,memcached使用的是一種Lazy Expiration策略,自己不會監控存入的key/vlue對是否到期,而是在擷取key值時查看記錄的時間戳記,檢查key/value對空間是否到期,這樣可減輕伺服器的負載。
Redis
Redis 是一個開源(BSD許可)的,基於記憶體的,多資料結構儲存系統。可以用作資料庫、緩衝和訊息中介軟體。 支援多種類型的資料結構,如 字串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 與範圍查詢,bitmaps,hyperloglogs和 地理空間(geospatial) 索引半徑查詢。
內建了 複製(replication),LUA指令碼(Lua scripting),LRU驅動事件(LRU eviction),事務(transactions) 和不同層級的 磁碟持久化(persistence), 並通過redis哨兵(Sentinel)和自動分區(Cluster)提供高可用性(high availability)。
Redis常用資料類型
Redis最為常用的資料類型主要有以下:
-
String
-
Hash
-
List
-
Set
-
Sorted set
-
pub/sub
-
Transactions