實戰Memcached快取系統(4)Memcached的CAS協議
尊重知識,轉載請註明本文來自:程式設計藝術家Poechant的CSDN部落格 http://blog.csdn.net/poechant
1. 什麼是CAS協議
很多中文的資料都不會告訴大家CAS的全稱是什麼,不過一定不要把CAS當作中國科學院(China Academy of Sciences)的縮寫。Google.com一下,CAS是什麼?CAS是Check And Set的縮寫。
2. CAS協議原文
http://code.sixapart.com/svn/memcached/trunk/server/doc/protocol.txt
3. CAS的基本原理
基本原理非常簡單,一言以蔽之,就是“版本號”。每個儲存的資料物件,多有一個版本號。我們可以從下面的例子來理解:
如果不採用CAS,則有如下的情景:
第一步,A取出資料物件X;
第二步,B取出資料物件X;
第三步,B修改資料物件X,並將其放入快取;
第四步,A修改資料物件X,並將其放入快取。
我們可以發現,第四步中會產生資料寫入衝突。
如果採用CAS協議,則是如下的情景。
第一步,A取出資料物件X,並獲取到CAS-ID1;
第二步,B取出資料物件X,並獲取到CAS-ID2;
第三步,B修改資料物件X,在寫入快取前,檢查CAS-ID與快取空間中該資料的CAS-ID是否一致。結果是“一致”,就將修改後的帶有CAS-ID2的X寫入到快取。
第四步,A修改資料物件Y,在寫入快取前,檢查CAS-ID與快取空間中該資料的CAS-ID是否一致。結果是“不一致”,則拒絕寫入,返回儲存失敗。
這樣CAS協議就用了“版本號”的思想,解決了衝突問題。
尊重知識,轉載請註明本文來自:程式設計藝術家Poechant的CSDN部落格 http://blog.csdn.net/poechant
-
相關文章
- 實戰Memcached快取系統(5)Memcached的CAS程式例項快取
- 實戰Memcached快取系統(6)Memcached CAS的多執行緒程式例項快取執行緒
- 實戰Memcached快取系統(3)Memcached配置引數初解快取
- 實戰Memcached快取系統(7)Memcached的一些基礎FAQ快取
- 實戰Memcached快取系統(2)Memcached Java API基礎之MemcachedClient快取JavaAPIclient
- 實戰Memcached快取系統(1)Memcached基礎及示例程式快取
- Memcached 協議協議
- 實戰Memcached快取系統(8)Memcached非同步實時讀寫問題的解決方案SAC快取非同步
- 分散式快取系統之Memcached分散式快取
- 快取: Memcached和terracotta快取
- Memcached::cas 詳解
- Memcached 分散式快取實現原理分散式快取
- 記憶體快取系統memcached與redis實現的對比記憶體快取Redis
- 伺服器後端開發系列——《實戰Memcached記憶體快取系統》伺服器後端記憶體快取
- memcached資料庫快取資料庫快取
- HTTP快取協議實戰HTTP快取協議
- C#呼叫Couchbase中的Memcached快取C#快取
- memcached快取知識簡單梳理快取
- 網路協議之:memcached text protocol詳解協議Protocol
- 如何利用memcached和wcf實現一個快取服務快取
- 分散式快取伺服器Memcached介紹分散式快取伺服器
- 系統快取全解析7:第三方分散式快取解決方案 Memcached和Cacheman快取分散式
- 網路協議之:memcached binary protocol詳解協議Protocol
- Shopify使用Memcached而不是Redis快取提升20%效能Redis快取
- Linux系統中部署memcachedLinux
- 對比Memcached和Redis,誰才是適合你的快取?Redis快取
- Rust編寫的Memcached快取替代品:memc.rsRust快取
- 輕量級 memcached快取代理 twemproxy實踐快取
- Web快取 – HTTP協議快取Web快取HTTP協議
- LNMP 分散式叢集(四):Memcached 快取伺服器的搭建LNMP分散式快取伺服器
- gmcache一個用go寫的分散式快取,類似memcachedGo分散式快取
- 初試redis,比memcached快10倍速Redis
- URL載入系統之五:快取、Cookies與協議快取Cookie協議
- Memcached筆記——(三)Memcached使用總結筆記
- Memcached實戰之複製----基於repcached的主從【轉】PCA
- 使用Memcached實現Session共享Session
- memcached 分散式實現原理分散式
- ARP快取表的構成ARP協議全面實戰協議詳解、攻擊與防禦快取協議