首頁 資料庫 Redis redis怎麼擴容

redis怎麼擴容

Jun 11, 2019 am 11:02 AM

team中的一個同學在其專案中使用了Redis作為緩存,將熱點資料存放在Redis中。為了提升效能,寫Redis時採用了管道的方式,平時使用時,Redis的效能、資源使用都能符合專案需求,但當訪問量增加的時候,Redis的QPS還能滿足要求,但CPU使用率高的時候已經達到90% ,平時只有30% ,眾所周知,Redis是單進程的,只能佔用1個CPU核,跑滿了也就100%,無法利用機器的多核,而當CPU跑到100%時,必然會造成效能瓶頸。怎麼解決?

redis怎麼擴容

推薦:《Redis影片教學

方案一:

首先想到的是,增加Redis伺服器的數量,在客戶端對儲存的key進行hash運算,存入不同的Redis伺服器中,讀取時,也進行相同的hash運算,找到對應的Redis伺服器,可以解決問題,但是不好的地方:

第一,客戶端要改動程式碼;

第二、需要客戶端記住所有的Redis伺服器的位址;

#這個方案可以使用,但能不能不用改動程式碼就能實現擴充呢?

方案二:

搭建一個集群,由於Redis伺服器使用的版本低於3.0,不支援集群,只能透過使用代理,就想到了有名的Redis代理商twemproxy。

twemproxy的效能也是槓槓滴,雖然是代理,但它對存取效能的影響非常小,連Redis作者都推薦它。

twemproxy使用方便,對於一個新手來說,不到一個小時就能學會使用,而且關鍵是不用改動客戶端程式碼,幾乎支援所有的Redis指令和管道操作,只需要改下客戶端的設定檔中設定的Redis的IP和PORT,由原來的Redis的IP和Port改成twemproxy服務的IP和PORT。

客戶端不需要考慮hash的問題,這些twemproxy會做,客戶端就像操作一台Redis。

上面用了「幾乎」這個詞,因為有些指令,例如"keys *"就不支援

很快就部署好了twemproxy和後面跟著的四個Redis機器,壓測發現,後面的四台Redis的CPU使用率降下來了,但新問題來了,twemproxy也是單一進程的!效能瓶頸又跑到twemproxy上來了!

方案三:

對Redis的存取分為寫和讀,類似生產者和消費者, 再仔細分析,發現寫的少,讀的相對多些,這就可以將讀寫分離,寫的往主的寫,讀的從備的讀,遇到的情況恰好是讀和寫是兩個服務,做到讀寫分離通過改下配置信息就可以很簡單的做到,,這樣分散了主Redis的壓力。

這裡對Redis的訪問壓力有好轉,但不是長久之計,比如遇到舉辦活動, 數據量增大時,還是會有性能的風險。

最終採用的方法是綜合方案二和三,如下圖所示:

#這種方法對現有的服務改動最小,可以有效緩解redis壓力的問題

producer端和consumer端的twemproxy所使用的hash演算法要求一致,不然就找不到key了。

如果把方案一也加進來,會比較複雜,暫時用不到。

#

以上是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脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
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)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1324
25
PHP教程
1272
29
C# 教程
1251
24
Redis是SQL還是NOSQL數據庫?答案解釋了 Redis是SQL還是NOSQL數據庫?答案解釋了 Apr 18, 2025 am 12:11 AM

RedisisclassifiedasaNoSQLdatabasebecauseitusesakey-valuedatamodelinsteadofthetraditionalrelationaldatabasemodel.Itoffersspeedandflexibility,makingitidealforreal-timeapplicationsandcaching,butitmaynotbesuitableforscenariosrequiringstrictdataintegrityo

REDIS的角色:探索數據存儲和管理功能 REDIS的角色:探索數據存儲和管理功能 Apr 22, 2025 am 12:10 AM

Redis在數據存儲和管理中扮演著關鍵角色,通過其多種數據結構和持久化機製成為現代應用的核心。 1)Redis支持字符串、列表、集合、有序集合和哈希表等數據結構,適用於緩存和復雜業務邏輯。 2)通過RDB和AOF兩種持久化方式,Redis確保數據的可靠存儲和快速恢復。

REDIS:確定其主要功能 REDIS:確定其主要功能 Apr 12, 2025 am 12:01 AM

Redis的核心功能是高性能的內存數據存儲和處理系統。 1)高速數據訪問:Redis將數據存儲在內存中,提供微秒級別的讀寫速度。 2)豐富的數據結構:支持字符串、列表、集合等,適應多種應用場景。 3)持久化:通過RDB和AOF方式將數據持久化到磁盤。 4)發布訂閱:可用於消息隊列或實時通信系統。

為什麼要使用redis?利益和優勢 為什麼要使用redis?利益和優勢 Apr 14, 2025 am 12:07 AM

Redis是一個強大的數據庫解決方案,因為它提供了極速性能、豐富的數據結構、高可用性和擴展性、持久化能力以及廣泛的生態系統支持。 1)極速性能:Redis的數據存儲在內存中,讀寫速度極快,適合高並發和低延遲應用。 2)豐富的數據結構:支持多種數據類型,如列表、集合等,適用於多種場景。 3)高可用性和擴展性:支持主從復制和集群模式,實現高可用性和水平擴展。 4)持久化和數據安全:通過RDB和AOF兩種方式實現數據持久化,確保數據的完整性和可靠性。 5)廣泛的生態系統和社區支持:擁有龐大的生態系統和活躍社區,

了解NOSQL:Redis的關鍵特徵 了解NOSQL:Redis的關鍵特徵 Apr 13, 2025 am 12:17 AM

Redis的關鍵特性包括速度、靈活性和豐富的數據結構支持。 1)速度:Redis作為內存數據庫,讀寫操作幾乎瞬時,適用於緩存和會話管理。 2)靈活性:支持多種數據結構,如字符串、列表、集合等,適用於復雜數據處理。 3)數據結構支持:提供字符串、列表、集合、哈希表等,適合不同業務需求。

REDIS:了解其架構和目的 REDIS:了解其架構和目的 Apr 26, 2025 am 12:11 AM

Redis是一种内存数据结构存储系统,主要用作数据库、缓存和消息代理。它的核心特点包括单线程模型、I/O多路复用、持久化机制、复制与集群功能。Redis在实际应用中常用于缓存、会话存储和消息队列,通过选择合适的数据结构、使用管道和事务、以及进行监控和调优,可以显著提升其性能。

REDIS:對其數據庫方法進行分類 REDIS:對其數據庫方法進行分類 Apr 15, 2025 am 12:06 AM

Redis的數據庫方法包括內存數據庫和鍵值存儲。 1)Redis將數據存儲在內存中,讀寫速度快。 2)它使用鍵值對存儲數據,支持複雜數據結構,如列表、集合、哈希表和有序集合,適用於緩存和NoSQL數據庫。

REDIS:它如何充當數據存儲和服務 REDIS:它如何充當數據存儲和服務 Apr 24, 2025 am 12:08 AM

REDISACTSASBOTHADATASTOREANDASERVICE.1)ASADATASTORE,ITUSESIN-MEMORYSTOOGATOFORFOFFASTESITION,支持VariousDatharptructuresLikeKey-valuepairsandsortedsetsetsetsetsetsetsets.2)asaservice,ItprovidespunctionslikeItionitionslikepunikeLikePublikePublikePlikePlikePlikeAndluikeAndluAascriptingiationsmpleplepleclexplectiations

See all articles