【乾貨合集】Redis深入之道——Redis4.0、讀寫分離技術揭秘及實戰應用

摘要:17日,阿里雲宣布推出全新一代模塊化資料庫—Redis 4.0版,重塑了資料庫格局。據介紹,全新模塊化資料庫,打破了雲資料庫Redis鍵值存儲的固化領域,同時基於硬體升級和架構優化,使其性能相比之前得到了300%的提升。

  阿里云云資料庫技術總監蔡松露認為,傳統的資料庫行業定律已經被打破,融合式、兼容並蓄的資料庫,將是未來行業發展的一大趨勢。

  具體來看,基於模塊化理念所誕生的Redis 4.0版,豐富了自身在各類業務場景的使用方式,使得資料庫第一次有了「集裝箱」的能力。在此前需要多種類型資料庫支持的功能,在模塊化的Redis中,用戶都可以通過「集裝箱」,將Redis先前所不支持的能力融合進來。對搜索、地理定位、時序、機器學習等場景將實現更為便捷的數據存儲,構建更為多元化、立體化的資料庫使用方式。

  性能方面,阿里雲Redis也完成了25GE網路的全線升級。同時,基於內核技術架構的改造,使得整體性能得到了300%的提升。有賴於如此優異的表現,近期如火如荼的《沖頂大會》等答題APP都選擇將題庫、消息等熱點數據存儲在雲資料庫Redis,以獲取更為高效的答題體驗。

  據悉,在Redis作者Salvatore的授權下,阿里雲內核團隊也充分發揮多年業務積累的優勢,在4.0版的主幹代碼上,同步為開源版本用戶貢獻了許多新的特性,如基於LFU的熱點Key發現及緩存機制等Feature,解決了業務中訪問的熱點問題,可以有效優化直播場景中信息卡頓等現象。

  從第一代RDS的發布,到HTAP理念的倡導,到極致性能的PolarDB資料庫發布,再到本次模塊化資料庫的發布。9年來,阿里云云資料庫站在了每一個風口的身後,為多樣的市場業務需求提供了強有力的支撐。在產品升級的同時,蔡松露也強調了雲資料庫團隊對行業孜孜不倦的探索;「以模塊化資料庫為代表的NewSQL是一種新的形態,或許在不遠的未來,將出現一個資料庫就能滿足多樣化的行業訴求的盛況。」

一、Redis4.0解讀

1、redis4.0之基於LFU的熱點key發現機制

業務中存在訪問熱點是在所難免的,redis也會遇到這個問題,然而如何發現熱點key一直困擾著許多用戶,redis4.0為我們帶來了許多新特性,其中便包括基於LFU的熱點key發現機制。

點擊閱讀詳情

2、redis4.0之MEMORY命令詳解

在過去,查看redis的內存使用狀態只有info memory命令,而且也只有一些基礎信息,想要獲取全局信息就有些困難。4.0開始redis提供了`MEMORY`命令,一切都變得簡單起來。

點擊閱讀詳情

3、redis4.0之module API

Use like malloc(). Memory allocated with this function is reported in Redis INFO memory, used for keys eviction according to maxmemory settings...

點擊閱讀詳情

4、redis4.0之lazyfree

DEL刪除體積較大的鍵,或FLUSHDB和FLUSHALL清空包含大量鍵的資料庫時,會造成redis阻塞。redis 4.0 引入了lazyfree的機制,它可以將刪除鍵或資料庫的操作放在後台線程里執行,從而儘可能地避免伺服器阻塞。

點擊閱讀詳情

5、redis4.0之Lua腳本新姿勢

Redis內嵌了Lua環境來支持用戶擴展功能,但是出於數據一致性考慮,要求腳本必須是純函數的形式,對於隨機性的寫入Redis是拒絕的。從Redis 3.2開始Lua腳本支持隨機性寫入,最近在總結4.0的新特性,索性就都歸到4.0里,方便查閱。

點擊閱讀詳情

6、redis4.0之RDB-AOF混合持久化

redis有兩種持久化的方式——RDB和AOF,RDB是一份內存快照,AOF則為可回放的命令日誌,他們兩個各有特點也相互獨立。4.0開始允許使用RDB-AOF混合持久化的方式,結合了兩者的優點,通過aof-use-rdb-preamble配置項可以打開混合開關。

點擊閱讀詳情

7、redis4.0之利用管道優化aofrewrite

redis的aof持久化本質上是一個redo log,把所有執行過的寫命令追加到aof文件中。那麼隨著redis的運行,aof文件會不斷膨脹,當觸發收縮條件時就要做aofrewrite。 redis是通過fork子進程來做aofrewrite,同時為了保證aof的連續性,父進程把aofrewrite期間的寫命令緩存起來,等收割完子進程之後再追加到新的aof文件。

點擊閱讀詳情

二、視頻分享

雲棲社區Redis專場視頻全紀錄

本視頻為2017杭州雲棲大會開源資料庫Redis專場全場視頻回顧。

點擊閱讀詳情

三、場景應用

1、阿里雲Redis讀寫分離典型場景:如何輕鬆搭建電商秒殺系統

秒殺活動是絕大部分電商選擇的低價促銷,推廣品牌的方式。不僅可以給平台帶來用戶量,還可以提高平台知名度。一個好的秒殺系統,可以提高平台系統的穩定性和公平性,獲得更好的用戶體驗,提昇平台的口碑,從而提升秒殺活動的最大價值。

本次主要討論阿里云云資料庫Redis緩存設計高並發的秒殺系統。

點擊閱讀詳情

2、Redis大數據應用場景

當前已經進入大數據時代,大數據技術和產品百花齊放,在各自的應用場景發揮重要作用,Redis做為高性能的鍵值資料庫與這些技術有著千絲萬縷的聯繫,本文將介紹如何將Redis與Hadoop、ELK等技術進行結合。

點擊閱讀詳情

3、阿里雲Redis典型場景:如何構建可擴展通用排行榜系統

本文主要介紹通用排行榜的需求功能,並介紹了基於Redis的ZSET數據結構的排序方法,另外探討了通用排行榜的架構及用戶如何通過阿里雲Redis解決通用排行架構的技術問題。

點擊閱讀詳情

4、Redis在遊戲開發中的典型應用

Redis作為目前最流行的鍵值對存儲資料庫,有著豐富的數據結構支持,在民生、金融、遊戲、直播等諸多領域都有廣泛的應用,大大提升了開發者的開發效率。今天我們主要介紹Redis在遊戲開發中的幾個典型應用場景:用戶數據緩存、持久化功能的消息隊列、樂觀鎖功能。

點擊閱讀詳情

5、如何用阿里雲Redis構建高性能在線廣告系統

本文主要介紹在線廣告系統,以及如果使用阿里雲Redis方便快捷的構建大數據量,低延遲的在線廣告服務。 背景 在線廣告作為互聯網最主要的盈利模式之一,支撐著互聯網行業的發張。早期的在線廣告主要是展示廣告,和在報紙,期刊上刊登廣告相似。

點擊閱讀詳情

四、產品家族及技術分析

1、雲資料庫Redis版推出256M雙機熱備版

服務於個人開發者和初創企業,適合高QPS、小數據量業務

點擊閱讀詳情

2、雲資料庫Redis版·單節點發布

純緩存業務量身打造,滿足10萬QPS的高並發讀寫訪問,故障秒級恢復,保障服務高可用。

點擊閱讀詳情

3、雲資料庫Redis單節點集群版

QPS最高可擴展到百萬級,可極大滿足對於 Redis 大容量或高性能的業務需求,由於分片伺服器為單節點,適合對數據容錯性較低的純緩存場景。

點擊閱讀詳情

4、雲資料庫Redis集群版

輕鬆突破 Redis 自身單線程瓶頸,可極大滿足對於 Redis 大容量或高吞吐性能的業務需求。

點擊閱讀詳情

5、雲資料庫Redis讀寫分離版上線

為滿足讀多寫少的業務場景,最大化節約用戶成本,阿里雲Redis推出了讀寫分離版本,為用戶提供透明、高可用、高性能、高靈活的讀寫分離服務。阿里雲Redis讀寫分離版最高支持10萬寫QPS,60萬讀QPS。

點擊閱讀詳情

6、阿里雲資料庫全新功能Redis讀寫分離,全維度技術解析

目前的阿里雲redis不管主從版還是集群規格,slave作為備庫不對外提供服務,只有在發生HA,slave提升為master後才承擔讀寫。這種架構讀寫請求都在master上完成,一致性較高,但性能受到master數量的限制。經常有用戶數據較少,但因為流量或者並發太高而不得不升級到更大的集群規格。

點擊閱讀詳情

五、產品官網

雲資料庫 MongoDB版

關於雲資料庫Redis版,您想了解的都在這裡

點擊閱讀詳情

更多技術乾貨敬請關注云棲社區知乎機構號:阿里云云棲社區 - 知乎

推薦閱讀:

分散式架構系統生成全局唯一序列號的一個思路
IMVC(同構 MVC)的前端實踐
基於TableStore構建簡易海量Topic消息隊列
CODING 代碼託管架構升級之路
雙十一絲般順滑體驗背後:阿里雲洛神網路虛擬化系統揭秘

TAG:Redis | 架构 | 性能 |