企業打開Redis的正確方式,來自阿里云云數據庫團隊的解讀

摘要: Redis是開源的基於內存且能夠持久化的分佈式 Key – Value數據庫。自2009年發佈最第一版本以來,Redis的熱度只增不減,除了常常位居DB-Engines的最受歡迎Key-Value數據庫榜首以外,看阿里雲技術總監爲您深度解讀雲數據庫Redis。算法

點此查看原文:http://click.aliyun.com/m/41902/數據庫

爲什麼Redis成爲數據庫能成爲後起之秀?緩存

數據庫技術積累近半個世紀,然而隨着新時代場景增多、業務發展,傳統數據庫面臨着不少壓力。數據開始初現規模,企業須要多套HA集羣數據庫,SQL和NoSQL Key Value混合使用,而且開始使用監控系統。而更加複雜的狀況下,每一個業務都須要各自特定的數據庫架構和優化方案,須要加入OLAP 、離線分析任務,而且考慮高速擴展、高性能、高可靠等問題。安全

Redis是開源的基於內存且能夠持久化的分佈式 Key – Value數據庫。自2009年發佈最第一版本以來,Redis的熱度只增不減,除了常常位居DB-Engines的最受歡迎Key-Value數據庫榜首以外,也在多家調查報告中成爲很是受喜好的NoSQL數據庫。網絡

Redis做爲NoSQL的表明之一,爲何會在歷史悠久的數據庫領域中迸發出此般活力?多線程

阿里云云數據庫技術總監蔡松露認爲:相比與強一致性的SQL關係型數據庫,NoSQL非關係型數據庫具有高性能、高靈活性。在當今的互聯網時代,如新金融、新零售、視頻直播、人工智能、IoT等多樣化的業務場景有了更嚴苛更不一樣的技術訴求。其次,擅長OLTP查詢的SQL並不完美地知足猛增的OLAP分析需求。最後,數據庫行業一直信奉的CAP理論已經被Paxos、Raft等算法打破,便可以同時實現強一致、高可用和高容錯,這也被視爲NoSQL運動興起的重大緣由之一。架構

「一切堅固的東西,都煙消雲散了」。 Redis能讓數據庫運行在內存中,比閃存盤快1000倍。併發

開源Redis有哪些不足?負載均衡

其實,開源項目和企業產品,有着徹底不一樣的定位。開源Redis項目最大的原則是簡單可靠,可是雲產品則須要知足不少企業訴求如多地容災、安全加密、升級與優化、集羣兼容性等等。機器學習

阿里云云數據庫團隊一直積極參與Redis開源社區的共建:在Redis 創始人 Salvatore以後,對社區代碼貢獻第二的就是阿里云云數據庫團隊;去年十月,阿里云云數據庫還將自研的特性如短鏈接性能提高30%、支持熱升級、兼容Memcache等融合到ApsaraCache項目中並貢獻給開源社區,對此Salvatore表示「ApsaraCache 項目開源是一件很是好的事情,將可以吸引全世界更多 Redis 核心專家參與,進一步提高產品的穩定性和可用性。」

在每一個企業級的需求背後,團隊都作了巨大的研發工做。舉例說明,集羣高兼容性和無縫擴容以知足實際生產需求;在集羣熱升級時作到使用無感知且業務不受影響;提供安全加密功能知足如金融對保密級別要求高的客戶等等。

工業級使用,沒有什麼是小事兒

目前,90%的中國互聯網公司都依靠Redis支撐用戶的高併發訪問,而80%的中國視頻直播網站都使用的阿里云云數據庫 Redis 版。

與開源Redis項目相比,兼容Redis協議標準的阿里云云數據庫 Redis 版有哪些優點?

圖片描述
Figure 1阿里雲基於開源Redis的企業級需求技術支持

做爲爲企業服務的雲產品,僅僅提供酷炫的功能並不足夠,更須要的是可靠、性能、安全和易用方面的保障和承諾。對於阿里云云數據庫團隊而言,不少改進都是在各類客戶場景需求下不斷打磨而成,好比:雙機熱備、持久化、同城容災;支持集羣版、高性能硬件、基於Binglog模式複製免除pfork;VPC網絡、強密碼認證、DDoS攻擊、SSL加密;性能監控、閾值報警、高頻操做、數據管理等。

容災是必不可少的部分,Redis原生的AOF能夠幫助同一機房網絡相應可達狀況下的容災,可是對於鏈路過長跨城甚至存在跨時區機房時,而須要遠程異地同步。有些企業對可用性要求極高,每一個單元都須承擔流量,容許N-1個機房斷電;爲此,團隊設計了服務單元化+數據中心的拓撲模式,並相應地進行內核改造從而具有獨特的容災能力。

圖片描述
Figure 2:Redis異地多活架構方案示意圖

每一個行業都會有各自場景需求。以遊戲行業爲例,如鬥地主等房間模式須要作到隨時開服,這就須要基於時間點用戶備份作到瞬間克隆實例;而對於參加人數會猛增的遊戲,須要在瘋狂灌人時逐步增大配置以作到資源合理高效利用,好比從標準版一鍵升級到極致版須要秒級遷移用戶數而且作到服務不收影響;在遊戲低峯收尾業務時多服合併,即將多個服務數據庫彙總到一個再作實時降級。同時,還要雲上雲下數據打通,數據歸檔快速回滾,作到時間點或局部恢復。

而對於視頻直播行業,瞬間大量用戶涌入的場景很是須要快速存儲、快速響應,基於朋友關係的送禮物、討論評論等大部分數據操做都適合非關係型數據庫,而僅有充值等少許場景須要關係性數據庫,所以重度依賴Redis數據庫,相應地則有「穩定性高於一切、低內存高QPS、鏈接數較大」的技術要求。相應地,阿里雲出臺的視頻直播方案具有鏈接數可普調至1-2w、帶寬可單獨調配及至萬兆, 集羣支持熱點key,讀寫分離等

此外,民生類的行業又會分爲極高QPS,熱升、無縫擴容的新聞類,容災、多活的交通類,容災、數據安全的金融類,根據各類場景給出響應的優化方案。

關於阿里雲Redis 4.0雲數據庫加強版的一些細節

阿里云云數據庫Redis版發佈的加強版具備多線程架構、內存壓縮算法優化、key後臺刪除功能、Redis module、Redis熱key統計等特色,尤爲值得一提的是該款產品經過創新的Redis module讓數據庫第一次有了「集裝箱貨輪」的能力。
圖片描述
Figure 3:Redis module讓數據庫擁有「集裝箱」能力

通常而言,傳統的單核CPU須要承擔30%計算和60%網絡的工做負載,而當採用多核處理以後,能夠將計算、網絡任務分別交給若干個CPU並將性能提升三倍,從根本上解決問題從而高併發任務量。同時,還經過創新的內存壓縮算法,將數據量壓縮50%。

熱key統計是爲了解決熱點事件時大流量請求集中落在某些分片中,到達物理網卡上線,緩存分片服務被打垮,緩存擊穿請求‘穿透’引發‘雪崩’的問題。常見的方法是結合使用服務端緩存、Memcache等,可是須要提早獲知熱點、緩存容量依然有限、增加不一致時間且熱點key遺漏等。目前,受益於讀寫分離架構,搭配負載均衡、讀寫分離自動路由和各節點高可用等,增長服務端能力高效快速發現熱點數據,從而應對熱key困境。

Redis未完,NewSQL待續

阿里云云數據庫 Redis 版兼容Redis協議標準的、提供持久化的內存數據庫服務,基於高可靠雙機熱備架構、可無縫擴展的集羣架構以及讀寫分離架構,知足高讀寫性能場景及容量需彈性變配的業務需求。

關於非關係型數據庫,阿里雲還有可根據不一樣場景切換引擎的MongoDB 3.四、首個全託管的DBaaS服務HBase 1.1,與開源社區版本相比,前者高鏈接數下併發提高10倍、短連接併發提高5倍,後者支持本地盤成本降低90%、總體性能提高3倍。

圖片描述
Figure 4:阿里雲擁有全球最完善的NewSQL雲數據庫家族

沒有NewSQL,企業將沒法從容應對大規模增加的數據,多維模型、聚合、大數據計算、物聯網應用、機器學習實踐等等新場景都會很是艱難。隨着將來不斷髮展演進,各種數據庫或許會逐漸融合爲一,那時咱們只須要在線插件式的方法,根據不一樣業務需求選用便可。

掃碼獲取更多資訊:
圖片描述

相關文章
相關標籤/搜索