主從高可用(該方案就是單例項形式,只是為了保證資料的安全,對於使用者資料少,業務的前期可以採用,目前我司快取架構就是採用該方案)
客戶端分片(典型代表:jedis。自主寫分片演算法,**掌握在自己手中,可控性強,但是需要專業的開發運維人員維護,技術要求和維護成本高)
redis cluster(3版本推出的集群方案,歷時四年之多的開發)
codis集群(豌豆莢15年開源的解決方案,開源之前其已經用了2年之多,與其同期官網推出redis cluster)
各大網際網路公司自主研發的集群架構,但是還沒有開源,可能也不會開源
簡單說明:
codis-proxy提供連線集群redis的服務入口
codis-config管理工具,支援包括新增/刪除redis/proxy節點,發起資料遷移等操 作,自帶乙個dashboard工具,瀏覽器可以直觀檢視集群的執行狀態
codis-server-group實現redis讀寫的水平擴充套件、高效能
codis-server實現redis例項服務,通過codis-ha實現服務的高可用
zookeeper/etcd存放資料路由表和codis-proxy節點的元資訊,codis-config發起的命令通過其同步到各個存活的codis-proxy,則zookeeper如果出問題則可能導致資料不一致的情況或者嚴重的會對外提供服務造成影響
簡單說明:
proxy提供分片演算法和redis服務入口,支援高可用
redis提供實現例項,並且通過sentinel支援高可用
redis-twemporxy提供通知底層ha切換至proxy
每個層結構出現問題或者變更節點資訊等所有操作都需要重新規劃分片演算法,則需要重啟服務
簡單說明:
redis cluster本身集群方案,客戶端可以任一連線乙個節點
redis-trib.rb指令碼為集群的管理工具,比如自動新增節點,規劃槽位,遷移資料等一系列操作(ruby語言)
每個節點都和n-1個節點通訊,所以要維護好這個集群架構的每個節點資訊,不然會導致整個集群不可工作
Redis之(三) 分布式鎖
分布式應用進行邏輯處理時經常會遇到併發問題。對於單程序的併發場景,我們可以使用語言或者類庫提供的鎖,而對於分布式場景,我們可以使用分布式鎖。分布式鎖的實現方法也有很多,memcached分布式鎖 zookeeper分布式鎖等等,當然,redis分布式鎖也是很有代表性的分布式鎖的實現方式。例子 某個操...
分布式計算(三)分布式的昨天
當今的我們已經處於計算機比較發達的時代,計算機的很多技術已經發展很久,很多我們現在使用的都是在一定基礎結構之上的研究,就好像我們學會了hadoop,webservices.學會了大資料計算,就是掌握了分布式技術嗎?感覺心慌 疑惑。這些疑惑不知道從什麼時候開始的,所以要想弄清是怎麼回事,還是回到遙遠的...
分布式學習筆記(三) 分布式選舉
在乙個分布式集群中負責對其他節點的協調和管理,其他節點都必須聽從主節點的安排。主節點的存在,就可以保證其他節點的有序執行,以及資料庫集群中的寫入資料在每個節點上的一致性。這裡的一致性是指,資料在每個集群節點中都是一樣的,不存在不同的情況。選舉的作用就是選出乙個主節點,由它來協調和管理其他節點,以保證...