日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

缓存 Memached

發布時間:2025/5/22 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 缓存 Memached 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

https://github.com/enyim/EnyimMemcached

http://www.newasp.net/soft/63735.html#downloaded/

http://blog.csdn.net/zhangyatoua/article/details/50945763

http://download.csdn.net/detail/e_wsq/4358982

https://redislabs.com/lp/memcached-c-sharp/

?

我的代碼

http://git.oschina.net/rocky132/Memached_learn

?

why Memcached ?

高并發訪問數據庫,容易造成死鎖

磁盤io讀寫緩慢

多客戶端可以共享緩存

Net+memory >> io?? //從局域網訪問另一臺機器的內存要比讀寫io要快

讀寫性能完美

超簡單集群搭建Cluster

開源 open source

沒有提供主從賦值功能,也沒有提供容災等功能,所以的代碼基本都是只是考慮性能最佳。不能做數據持久化(redis)。

學習成本非常低,入門非常容易

豐富的成功案例

?

Memcached是由Danga Interactive開發的,高性能的,分布式的內存對象緩存系統,用于在動態應用中減少數據庫負載,提升訪問速度。.net httpruntime.cache不支持跨服務器(不支持分布式)。

訪問量大的網站有必要用到分布式緩存,小網站沒有必要用memcache
Memcached能緩存什么?
通過在內存里維護一個統一的巨大的hash表,Memcached能夠用來存儲各種格式的數據,包括圖像、視頻、文件以及數據庫檢索的結果等。

Memcached的緩存是一種分布式的,可以讓不同主機上的多個用戶同時訪問, 因此解決了共享內存只能單機應用的局限,更不會出現使用數據庫做類似事情的時候,磁盤開銷和阻塞的發生。

資料

原理

memcached分服務器端和客戶端,可以配置多個服務器端和客戶端,應用于分布式的服務非常廣泛。

Memcached是以守護程序(監聽)方式運行于一個或多個服務器中,隨時會接收客戶端的連接和操作。

memcached是一種無阻塞的socket通信方式服務,基于libevent庫,由于無阻塞通信,對內存讀寫速度非常之快。

在 Memcached中可以保存的item數據量是沒有限制的,只要內存足夠 。
  Memcached單進程在32位系統中最大使用內存為2G,若在64位系統則沒有限制,這是由于32位系統限制單進程最多可使用2G內存,要使用更多內存,可以分多個端口開啟多個Memcached進程 ,
  最大30天的數據過期時間,設置為永久的也會在這個時間過期,常量REALTIME_MAXDELTA

  最大鍵長為250字節,大于該長度無法存儲,常量KEY_MAX_LENGTH 250控制

單個item最大數據是1MB,超過1MB數據不予存儲,常量POWER_BLOCK 1048576進行控制,?
  它是默認的slab大小

MemCache的工作流程如下:先檢查客戶端的請求數據是否在memcached中,如有,直接把請求數據返回,不再對數據庫進行任何操作;如果請求的數據不在memcached中,就去查數據庫,把從數據庫中獲取的數據返回給客戶端,同時把數據緩存一份到memcached中(memcached客戶端不負責,需要程序明確實現);每次更新數據庫的同時更新memcached中的數據,保證一致性;當分配給memcached內存空間用完之后,會使用LRU(Least Recently Used,最近最少使用)策略加上到期失效策略,失效數據首先被替換,然后再替換掉最近未使用的數據,? 閑置 > 過期>最少訪問

Memcache是一個高性能的分布式的內存對象緩存系統,通過在內存里維護一個統一的巨大的hash表,它能夠用來存儲各種格式的數據,包括圖像、視頻、文件以及數據庫檢索的結果等。簡單的說就是將數據調用到內存中,然后從內存中讀取,從而大大提高讀取速度。

內存模型:Memcache預先將可支配的內存空間進行分區(slab),每個分區里再分成多個塊(chunk)大小1MB,但同一個分區里 塊的長度(bytes)是固定的。不存在內存碎片。

?

?

插入數據:查找適合自己長度的塊,然后插入,會有內存浪費

惰性刪除: 它并沒有提供監控數據過期的機制,而是惰性的,當查詢到某個key數據時,如果過期那么直接拋棄。

?

集群搭建原理:

Memcache 服務器端并沒有提供集群功能,但是通過客戶端的驅動程序實現了集群配置。

客戶端實現集群的原理:首先客戶端配置多臺集群機器的ip和端口的列表。然后客戶端驅動程序在寫入之前,首先對key做哈希處理得到哈希值后對總的機器的個數進行取余,然后就選擇余數對應的機器。

?

?

?

安裝memcached 服務

http://www.runoob.com/memcached/window-install-memcached.html c:\memcached\memcached.exe -d install

?

啟動、運行 c:\memcached\memcached.exe -d start c:\memcached\memcached.exe -d stop

?

卸載 c:\memcached\memcached.exe -d uninstall

?

默認端口 11211

?

驗證 netstat -ano|findstr "11211"

?

連接 telnet 127.0.0.1 11211 檢查memcached當前服務狀態 stats

?

?

?

多個web服務器共享緩存

c#操作memcached 代碼

?

轉載于:https://www.cnblogs.com/rockywood/p/6523632.html

總結

以上是生活随笔為你收集整理的缓存 Memached的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。