一、memcache緩存的是什么數據又是怎么寫入的
首先明確,memcache是作為高速緩存使用的。
那么,到底怎樣才能獲得高速的響應呢?當然如果是簡單處理的話,利用關系型數據庫的索引也能獲得高速響應。雖然memcached會更快一些,但如果合理地使用索引,關系型數據庫就足夠快了。
mysql 通常是有一個主鍵,一行記錄里有一個可以標注”身份”的值。mc 是 kv 形式的內存數據庫,使用mc的意義就是高速讀取,防止對mysql的讀取量過大造成各種問題。存mc時候通常把mysql的主鍵作為key,value可以是一個數據(mysql的一行做一個關聯數據),也可以把mysql的一條記錄做json_encode,當作一個string進行緩存。
但是如果要對多個表的數據進行計算,情況又會怎樣呢?若使用關系型數據庫,我們需要從每個表中取出數據然后進行最后的組合處理,或者每次都要使用JOIN等處理。雖然我們可以通過事前用批處理制作數據來解決這個問題,但是這樣又會增加需要管理的表,花費我們更多的精力。
延伸閱讀:
二、MemCache是什么
MemCache是一個自由、源碼開放、高性能、分布式的分布式內存對象緩存系統,用于動態Web應用以減輕數據庫的負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提高了網站訪問的速度。MemCaChe是一個存儲鍵值對的HashMap,在內存中對任意的數據(比如字符串、對象等)所使用的key-value存儲,數據可以來自數據庫調用、API調用,或者頁面渲染的結果。MemCache設計理念就是小而強大,它簡單的設計促進了快速部署、易于開發并解決面對大規模的數據緩存的許多難題,而所開放的API使得MemCache能用于Java、C/C++C#、Perl、Python、PHP、Ruby等大部分流行的程序語言。