概述
memcache是一套開放源的分布式高速緩存系統。由服務端和客戶端組成,以守護程序(監聽)方式運行於一個或多個服務器中,隨時會接收客戶端的連接和操作。memcache主要把數據對象緩存到內存中,通過在內存里維護一個統一的巨大的hash表。簡單的說就是將數據調用到內存中,然后從內存中讀取,從而大大提高讀取速度。memcache基於一個存儲鍵/值對的hashmap進行存儲對象到內存中。memcache是用C寫的,但是客戶端可以用任何語言來編寫,並通過memcached協議與守護進程通信。
特性:
•在 Memcached中可以保存的item數據量是沒有限制的,只要內存足夠 。
•Memcached單進程在32位系統中最大使用內存為2G,若在64位系統則沒有限制,這是由於32位系統限制單進程最多可使用2G內存,要使用更多內存,可以分多個端口開啟多個Memcached進程 。
•最大30天的數據過期時間,設置為永久的也會在這個時間過期,常量REALTIME_MAXDELTA
•單個item最大數據是1MB,超過1MB數據不予存儲,常量POWER_BLOCK 1048576進行控制
Memcache集群原理
Memcache:通過客戶端驅動實現集群。Redis、MongoDb:通過服務器端實現集群;Memcache初始化驅動的時候,可以給定一個集合,如
1 string[] servers = { "172.20.10.7:11211","172.20.10.8:11211"};
驅動實現集群原理圖

Memcache優缺點:
1、不能作為持久化保存
2、存儲數據有限:1M【大於1M,人為進行分割】
3、存儲只能key-value
4、集群數據沒有復制和同步機制。【奔潰不會影響程序,沒有主從復制機制(沒有額外復制開銷)】
5、內存回收不是很及時,LRU:未使用內存>過期內存>最近最少使用內存 惰性刪除(也算是缺點)
好了,我們現在大概知道Memcache干什么用的呢,其實方法很簡單,請參考我上篇博客:https://www.cnblogs.com/chenyanbin/p/11415368.html
代碼實現:
1、下載dll客戶端類庫
地址:https://sourceforge.net/projects/memcacheddotnet/
百度雲盤:
鏈接:https://pan.baidu.com/s/1tIkdYdp8rkKtXMeOeT24AA
提取碼:5yk2
2、引入類庫

3、添加引用

4、 代碼
1 //分布式Memcached服務器ip 端口 2 string[] servers = { "172.20.10.7:11211"}; //Memcache機器IP 3 //初始化池 4 SockIOPool pool = SockIOPool.GetInstance(); 5 pool.SetServers(servers); //關聯連接池 6 pool.InitConnections = 3; //初始化鏈接 7 pool.MinConnections = 3; //最小連接數 8 pool.MaxConnections = 5; //最大連接數 9 pool.SocketConnectTimeout = 1000; //Socket超時連接時間 10 pool.SocketTimeout = 3000; //Socket超時時間 11 pool.MaintenanceSleep = 30; //Socket休眠時間 12 pool.Failover = true; 13 pool.Nagle = false; 14 pool.Initialize(); //初始化 15 //客戶端實例 16 MemcachedClient mc = new MemcachedClient(); 17 mc.EnableCompression = false; //啟動壓縮 18 mc.Add("keykey", "valuevalue"); //添加 19 //mc.Delete("keykey"); //刪除 20 //mc.Set("", ""); //設置 21 //mc.Get(""); //獲取
實現:

成功


示例DEMO
鏈接:https://pan.baidu.com/s/1QhHEO71jMDCbZ72lbFNNcw
提取碼:0a5i
如果這篇文章對你有幫助,幫忙推薦下,有不懂的地方歡迎下方留言~~
