首頁 資料庫 Redis redis集群原理

redis集群原理

Jun 03, 2019 pm 04:52 PM
redis

redis是一種典型的no-sql 即非關聯式資料庫像python的字典一樣儲存key-value鍵值對工作在memory中

##所以很適合用來充當整個互聯網架構中各級之間的cache 例如lvs的4層轉送層nginx的7層代理層

redis集群原理

尤其是lnmp架構應用層如php-fpm或是Tomcat到mysql之間做一個cache 以減輕db的壓力

因為有相當一部分的資料只是簡單的key-value對應關係,而且在實際的業務中常常在短時間內迅速變動 

#如果用關聯式資料庫mysql之類儲存會大幅增加db的存取導致db的負擔很重因為所有的require中的大部分最後都要匯聚到db

所以如果想要業務穩定那麼解決db的壓力就是關鍵所以現在大部分的解決方案就是在db層之上的各級使用多級的no-sql 

像memcache redis 等來為db提供緩衝  

#Redis叢集

Redis 叢集是一個可以在多個Redis 節點之間進行資料共享的設施installation。

Redis 叢集不支援那些需要同時處理多個鍵的Redis 命令, 因為執行這些命令需要在多個Redis 節點之間移動數據, 並且在高負載的情況下, 這些命令將降低Redis集群的性能, 並導致不可預測的行為。

Redis 叢集透過分區partition來提供一定程度的可用性availability: 即使叢集中有一部分節點失效或無法進行通訊, 叢集也可以繼續處理命令請求。

Redis叢集提供了以下兩個好處:

將資料自動切分split到多個節點的能力。

當叢集中的一部分節點失效或無法進行通訊時, 仍然可以繼續處理命令請求的能力。

叢集原理

所有的redis節點彼此互聯(PING-PONG機制),內部使用二進位協定最佳化傳輸速度和頻寬。

節點的fail是透過叢集中超過半數的節點偵測失效時才生效。

客戶端與redis節點直連,不需要中間proxy層.客戶端不需要連接叢集所有節點,連接叢集中任何一個可用節點即可。

redis-cluster把所有的實體節點映射到[0-16383]slot上,cluster 負責維護node<->slot<->value

Redis叢集中內建了 16384個哈希槽,當需要在 Redis 集群中放置一個 key-value 時,redis 先對key 使用 crc16 演算法計算一個結果,然後將結果對 16384 求餘數,以便每個 key 間的哈希槽,redis 會根據節點數量大致均等的將哈希槽映射到不同的節點

以上是redis集群原理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Windows11安裝10.0.22000.100跳出0x80242008錯誤解決方法 Windows11安裝10.0.22000.100跳出0x80242008錯誤解決方法 May 08, 2024 pm 03:50 PM

1.啟動【開始】選單,輸入【cmd】,右鍵點選【指令提示字元】,選擇以【管理員身分】執行。 2.依序輸入下方指令(可小心複製貼上):SCconfigwuauservstart=auto,按回車SCconfigbitsstart=auto,按回車SCconfigcryptsvcstart=auto,按回車SCconfigtrustedinstallerstart=auto,按回車SCconfigwuauservtype=share,按回車SCconfigtrustedinstallerstart=auto,按回車SCconfigwuauservtype=share,按Entnetstopwuauservnetstopwuauserv ,按回車netstopcryptS

Golang API快取策略與最佳化 Golang API快取策略與最佳化 May 07, 2024 pm 02:12 PM

GolangAPI中的快取策略可提升效能和減輕伺服器負載,常用策略有:LRU、LFU、FIFO和TTL。優化技巧包括:選擇合適的快取儲存、分級快取、失效管理以及進行監控和調整。實作案例中,使用LRU快取優化從資料庫取得使用者資訊的API,可從快取中快速檢索數據,否則從資料庫取得後再更新快取。

PHP開發中的快取機制與應用實戰 PHP開發中的快取機制與應用實戰 May 09, 2024 pm 01:30 PM

在PHP開發中,快取機制透過將經常存取的資料暫時儲存在記憶體或磁碟中來提升效能,從而減少資料庫存取次數。快取類型主要包括記憶體、檔案和資料庫快取。 PHP中可以使用內建函數或第三方函式庫實作緩存,如cache_get()和Memcache。常見的實戰應用程式包括快取資料庫查詢結果以最佳化查詢效能,以及快取頁面輸出以加快渲染速度。快取機制有效改善網站回應速度,提升使用者體驗並降低伺服器負載。

Win11英文21996怎麼升級到簡體中文22000_Win11英文21996升級到簡體中文22000的方法 Win11英文21996怎麼升級到簡體中文22000_Win11英文21996升級到簡體中文22000的方法 May 08, 2024 pm 05:10 PM

首先你需要將系統語言設定為簡體中文顯示並重新啟動。當然,之前已經改為簡體中文顯示語言的直接跳過這一步即可。下面開始操作註冊表,regedit.exe,左側導覽列或上方網址列直接定位到HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlNlsLanguage,然後將其中的InstallLanguage鍵值、Default鍵值全部修改為0804(如果想改為英文的en-us,需要先將系統顯示語言設定為en-us,重啟系統再全部修改為0409)進行到這裡必須重啟系

PHP數組分頁中如何使用Redis快取? PHP數組分頁中如何使用Redis快取? May 01, 2024 am 10:48 AM

使用Redis快取可以大幅優化PHP數組分頁的效能。可透過以下步驟實現:安裝Redis客戶端。連接到Redis伺服器。建立快取數據,將每頁資料儲存到Redis雜湊中,金鑰為"page:{page_number}"。從快取中獲取數據,避免對大型數組進行昂貴的操作。

Win11下載的更新檔案怎麼找_Win11下載的更新檔案位置分享 Win11下載的更新檔案怎麼找_Win11下載的更新檔案位置分享 May 08, 2024 am 10:34 AM

1.先雙擊開啟桌面上的【此電腦】圖示。 2.接著雙擊滑鼠左鍵進入【c盤】,系統檔案一般都會自動存放在c盤。 3.然後再c盤中找到【windows】資料夾,同樣雙擊進入。 4.進入【windows】資料夾後,找到其中的【SoftwareDistribution】資料夾。 5.進入之後再找到【download】資料夾,裡面存放的就是所有的win11下載更新檔了。 6.如果我們想要刪除這些檔案的話,直接在這個資料夾中將他們刪除就可以了。

PHP Redis 快取應用與最佳實踐 PHP Redis 快取應用與最佳實踐 May 04, 2024 am 08:33 AM

Redis是一個高效能鍵值對快取。 PHPRedis擴充提供了一個API來與Redis伺服器互動。使用下列步驟與Redis連接,儲存和檢索資料:連接:使用Redis類別連接到伺服器。儲存:使用set方法設定鍵值對。檢索:使用get方法取得鍵的值。

在Docker環境中使用PECL安裝擴展時為什麼會報錯?如何解決? 在Docker環境中使用PECL安裝擴展時為什麼會報錯?如何解決? Apr 01, 2025 pm 03:06 PM

在Docker環境中使用PECL安裝擴展時報錯的原因及解決方法在使用Docker環境時,我們常常會遇到一些令人頭疼的問�...

See all articles