【乾貨合集】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 代碼託管架構升級之路
※雙十一絲般順滑體驗背後:阿里雲洛神網路虛擬化系統揭秘