您好,登錄后才能下訂單哦!
Memcache的意思是什么?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
Memcache是一個自由、源碼開放、高性能、分布式的分布式內存對象緩存系統,該系統可以提升網站的訪問速度,尤其對于一些大型的、需要頻繁訪問數據庫的網站訪問速度提升效果十分顯著。
為什么要使用Memcache?
主要用于動態Web應用以減輕數據庫的負載。
它通過在內存中緩存數據和對象來減少讀取數據庫的次數,
從而提高了網站訪問的速度。
Memcache的實現原理
memcache處理的原子是每一個key、val,key會通過一個hash表轉換成hash的key,便于查找對比以及竟可能的做到散列。同時mem用的是一個二級散列,通過一個hash表來維護。
memcache有兩個核心組件:服務端和客戶端
在一個memcache組件查詢中,client先通過key的hash值來確定kv在service端的位置,當server端確定后,客戶端就會發一個請求個server端。讓它來查找出確切數據,因為這之間沒有交互以及多播協議,因此mem帶給網絡的影響最小
Memcache特性和限制
在 Memcached中可以保存的item數據量是沒有限制的,只要內存足夠 。
Memcached單進程在32位系統中最大使用內存為2G,若在64位系統則沒有限制,這是由于32位系統限制單進程最多可使用2G內存,要使用更多內存,可以分多個端口開啟多個Memcached進程 ,
最大30天的數據過期時間,設置為永久的也會在這個時間過期,常量REALTIME_MAXDELTA
60*60*24*30控制
最大鍵長為250字節,大于該長度無法存儲,常量KEY_MAX_LENGTH 250控制
單個item最大數據是1MB,超過1MB數據不予存儲,常量POWER_BLOCK 1048576進行控制,
它是默認的slab大小
最大同時連接數是200,通過 conn_init()中的freetotal進行控制,最大軟連接數是1024,通過
settings.maxconns=1024 進行控制
跟空間占用相關的參數:settings.factor=1.25, settings.chunk_size=48, 影響slab的數據占用和步進方式
memcached是一種無阻塞的socket通信方式服務,基于libevent庫,由于無阻塞通信,對內存讀寫速度非常之快。
memcached分服務器端和客戶端,可以配置多個服務器端和客戶端,應用于分布式的服務非常廣泛。
memcached作為小規模的數據分布式平臺是十分有效果的。
memcached是鍵值一一對應,key默認最大不能超過128個字 節,value默認大小是1M,也就是一個slabs,如果要存2M的值(連續的),不能用兩個slabs,因為兩個slabs不是連續的,無法在內存中 存儲,故需要修改slabs的大小,多個key和value進行存儲時,即使這個slabs沒有利用完,那么也不會存放別的數據。
memcached已經可以支持C/C++、Perl、PHP、Python、Ruby、Java、C#、Postgres、Chicken Scheme、Lua、MySQL和Protocol等語言客戶端。
看完上述內容,你們掌握Memcache的意思是什么的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。