虹科文章
五大最佳的 Redis 用例
Redis擁有很好的聲譽,並且廣受青睞。開發者們依靠Redis Enterprise處理多個行業的關鍵用例,涵蓋遊戲、零售、物聯網和旅遊應用開發等領域。
那麽,開發者如何利用Redis滿足他們的數據庫需求呢?起初,Redis從開源項目出發,但在過去13年里,隨著數字業務的成長,對數據庫的需求也在不斷提升。這意味著需要更高的可用性、更持久的存儲,並且絕不能容忍性能上的滯後。因此,備份啟用和即時的故障轉移成為必備的特性。
對任何編程團隊而言,實現無痛的業務擴展性都是開發中的一大目標。通過使用Redis Enterprise提供的內存中緩存和內存數據庫,開發者能在一個單一系統中得到Redis Enterprise的雙重支持,進而降低業務的覆雜性和延遲。
一切的關鍵在於速度。包括加快應用交互速度(如快速數據檢索和後端服務的緩存負載平衡),以及根據用戶需求構建以低延遲為特點的微服務架構(通過Redis的多模態數據庫構建)。
接下來,讓我們探討一些知名的Redis用例,以及客戶實際的Redis性能示例。
一、實時決策的快速欺詐檢測
在實時決策中,快速檢測欺詐行為至關重要。根據LexisNexis的報告,現在每1美元的欺詐,就使美國的零售和電子商務商家損失3.75美元,較2019年上升了19.8%。
以色列的數字身份公司BioCatch利用其突破性的生物識別追蹤技術來識別欺詐者。隨著公司業務迅速增長到7000萬用戶、每秒4萬次操作和每月50億次交易,BioCatch團隊需要一種方法來處理顯著嚴峻的數據庫擴展問題。
受COVID-19的影響,在線交易數量激增。根據摩根士丹利2022年全球電子商務增長預測報告,電子商務市場規模預計將從目前的3.3萬億美元飆升至2026年的5.4萬億美元。隨著這種增長而來的是網絡安全危險:數字身份威脅、網絡犯罪和客戶欺詐。根據Bolster.AI的報告,網絡釣魚和假冒頁面在2021年增加了53%。
在構建精細調校的欺詐檢測算法時,數據層對時延要求很高,需要在40毫秒內做出響應,以免對客戶體驗產生負面影響。
數據泄露已成為一種普遍問題。IBM報告稱,83%的組織經歷過多次數據泄露事件,每次事件的平均成本約為430萬美元。美國則連續12年獲得數據泄露平均總成本最高國家的頭銜。
隨著覆雜性、體量和威脅的增加,需要更先進的欺詐檢測方法來應對欺詐者,並構建更強大的防御。傳統數據平台常難以應對現代在線交易的速度、規模和覆雜性,難以實時檢測和阻止欺詐。
因此,BioCatch轉而使用Redis Enterprise,利用其強大的性能、高可用性和無縫可擴展性來應對這些挑戰。最初,其考慮將Redis Enterprise作為緩存,但團隊很快發現Redis也可以作為一個優秀的NoSQL數據庫。
BioCatch利用Redis的特性和多樣的數據結構創建了一個單一真實來源數據庫,服務於整個組織的關鍵信息。BioCatch在活躍用戶會話期間捕獲行為、元數據和API數據。它還創建了用戶行為概況子集和預定義的欺詐行為概況。
BioCatch在Microsoft Azure上運行的40個數據庫中擁有3PB數據、3億個鍵,BioCatch依靠Redis Enterprise為其所有微服務提供數據。自從使用Redis Enterprise以來,BioCatch實現了零停機時間和無操作運維,使其團隊能夠專注於核心戰略項目。
二、現代遊戲體驗
根據Mordor Intelligence的數據,2021年全球遊戲市場價值達1984億美元,預計到2027年將增長至3399.5億美元,這一增長在很大程度上得益於移動遊戲的興起。
移動遊戲要取得成功,首先需確保提供良好的用戶體驗,實時多人遊戲里這一點尤為重要,而這對於基礎設施也有著很高的要求。必須保證用戶能夠迅速啟動遊戲、連接到服務器,並與其他玩家順暢互動;任何延遲或故障都可能破壞整體遊戲體驗。此外,遊戲體驗還包括實時交易,有時還涉及真實貨幣的使用。
開發者們依賴Redis的低延遲特性來提供高性能和幾乎無限的規模擴展,在處理大量高速數據的遊戲環境中至關重要。以虛擬體育為例,據估計,到 2028 年,虛擬體育將成為一個價值 480 億美元的市場。美式橄欖球是美國最受歡迎的虛擬體育運動遊戲,擁有 3500 萬玩家。但根據印度夢幻體育聯合會(FIFS)的一項研究,與印度的虛擬板球聯賽遊戲相比就相形見絀了,印度的虛擬板球聯賽遊戲約有 1 億玩家。
在印度,球隊會在賽前公布比賽名單,而在線玩家只有 10-15 分鐘的時間更新各自的夢幻球隊。這需要接收大量數據,但不應影響客戶體驗,尤其是在時間緊迫的情況下。
對於遊戲開發者而言,提供遊戲元素如圖形、圖片、縮略圖和音樂等,需要一個強大的緩存解決方案,以減輕運行在關系數據庫(例如MySQL)上的數據存儲負擔,同時確保極快的響應時間。
緩存能夠提供快速響應的用戶體驗,同時最大程度減少開銷。例如,Scopely制作的手機遊戲《行屍走肉:求生之路》就依賴Redis Enterprise滿足其排行榜、API管理和隊列工作負載管理等各種需求。
Scopely需要支持各種數據結構和功能,例如自定義過期、淘汰策略、智能緩存、請求管道、數據持久性和高可用性。這些需求無法通過SQL數據庫來滿足,除非使用覆雜的負載均衡集群。
數據是任何排行榜的核心。只有在數據快速響應的情況下,遊戲的排行榜才能以同樣快速的速度進行更新。如果您希望滿足遊戲和玩家的高期望,那麽您的排行榜數據庫需要滿足這些技術要求。
三、全渠道電子商務框架
在全渠道電子商務框架方面,創建全面的數字化業務是一項艱巨的工作,並且其學習曲線非常陡峭。一個優秀的數字化企業需要一個確保商店頁面可用的後台、一個庫存管理系統、一個快速緩存用於網站的自動完成功能、一個產品搜索引擎,以及實時創建個性化客戶體驗的機器學習技術。而且這一切都必須是高性能的;根據 2020 年 YOTTA 的一項研究,90% 的購物者表示,如果網站的響應速度太慢,他們會放棄使用該網站購物。
現代多渠道零售商正轉向使用實時庫存系統,目的在於優化庫存、產量和供應鏈物流,以改善客戶體驗和供應鏈效率。構建和維護這些覆雜系統對應用開發者而言是一項艱巨且覆雜任務。
在這種情況下,性能變得至關重要。延遲或不準確的庫存信息可能導致客戶的購物體驗下滑和投訴,進而導致購物車的商品被遺棄與取消訂單,造成收入損失、成本增加和品牌形象受損。
例如,服裝零售商Gap Inc.希望為其電子商務客戶提供購物車中每件商品的實時發貨信息。該公司面臨的延遲問題和不準確庫存信息問題導致了糟糕的客戶體驗,不僅增加了成本,同時還損害了品牌忠誠度。
Gap Inc.的應用開發人員發現,Redis Enterprise的線性可擴展性和大規模下的亞毫秒性能表現對於應對季節性的高峰期(如黑色星期五)提供了極大的幫助。同時,在微服務環境中,快速、靈活的數據模型也可以防止在低峰期時過度配置基礎設施。
因此,確保可用性、速度、性能和體驗是實現真正無縫體驗的關鍵。
四、通過實時分析和高速數據攝取開辟新的收入來源
在大數據時代,企業面臨的一個關鍵挑戰是如何實時收集、存儲和處理大量數據。盡管目前有許多支持快速數據攝取的解決方案,但它們往往過於覆雜,並且對於簡單需求(如從物聯網 IoT 和事件驅動應用程序中實時流式傳輸數據)顯得設計過度。
在此類應用中,快速數據分析對於迅速做出商業決策至關重要。這些用例通常不能容忍數據丟失。然而,在使用傳統的關系數據庫時,數據丟失確實是一個普遍存在的問題。SQL數據庫往往是圍繞特定用例構建的,如果在SQL技術棧中引入新的數據結構或數據模型,可能會因為速度減慢、數據攝取效率下降和數據丟失而導致整體性能下降,這往往是因為數據需要被轉換以適應數據庫選擇的模型所造成的。
數據丟失意味著丟失潛在的商機。因此,任何丟失的數據都可能是探索新收入來源的關鍵。
一個顯著的例子是Inovonics的使用案例。Inovonics提供高性能無線傳感器網絡,在全球部署了超過1000萬個設備。在其30年的歷史中,Inovonics主要認為自己是一個無線技術提供商。但隨著大數據時代的到來,Inovonics意識到其無線設備和傳感器收集的獨特數據集具有巨大的商業價值。
Inovonics的邊緣平台需要一種強大的數據平台能力來確保彈性和性能,同時最小化其運營成本。通過采用Redis Enterprise Cloud(一種完全自動化的數據庫即服務(DBaaS)),Inovonics在谷歌雲中心化了所有數據,開辟了以洞察力豐富、易於訪問而著稱的數據分析形式的新產品供應。
Inovonics在其IoT邊緣設備上使用Redis Enterprise將數據推送到其網關,然後再從這些網關推送到公司的私有谷歌雲平台上。在谷歌雲上,應用Redis Enterprise作為數據攝取層,存儲來自Inovonics傳感器網絡每日數百萬條消息,並提供一個中心化、聚合的視圖以分析數據。Redis Enterprise還存儲應用數據模型,以便傳入的消息可以與傳感器位置等相關信息關聯。這種形式不僅提高了數據攝取和分析的效率,還為Inovonics開辟了新的收入來源。
五、輕松實現業務擴展
COVID-19不僅給實體零售業帶來了挑戰,還迫使技術供應商重新調整和定制其運營和應用交付模型。為了保持業務不間斷運行並實現規模擴展,企業需要正確的工具和技術來擴展基礎設施並加速應用響應時間。
以Freshworks為例,這家公司開發基於雲的商業軟件套件。過去六年中,由於業務的快速增長,公司努力擴展其應用架構和開發運營能力。隨著數據庫負載的增加,維持性能成為了一大挑戰。團隊希望能動態擴展集群,同時不影響業務可用性,並減輕其主要MySQL數據庫的負擔,加速應用響應。
在評估了多種NoSQL如Aerospike和Hazelcast這樣的內存數據庫後,Freshworks選擇了Redis,因為想充分利用其高性能和靈活性。最終,他們采用了Redis Enterprise Cloud,確保開發者基礎設施服務的高可用性和無縫數據庫體驗。
Freshworks將Redis Enterprise用作其MySQL數據庫的前端緩存,並利用Redis的高效數據結構(如哈希、列表和有序集合)以及內置的Redis命令來計量進入其Freshdesk軟件的API請求。同時,Redis Enterprise也作為後台作業的持久存儲,存儲在磁盤上。隨著公司向微服務架構轉移,已經開始將關鍵工作負載從單體Ruby on Rails網絡應用框架中分離出來,其中一個專門用於認證的微服務將Redis Enterprise作為會話存儲使用。
此外,Freshworks還利用Redis Enterprise強大的數據結構,如HyperLogLog、位圖和集合,作為用戶分析的前端數據庫。
上述案例研究只是Redis Enterprise作為最佳選擇的用例的一小部分例子。但有幾個特性值得強調。
緩存
緩存層存儲重覆請求的數據,以亞毫秒級的響應時間提供,加快加載速度,減輕後端壓力。企業級的內存緩存能線性擴展且保持性能上的穩定。快速的數據檢索等於用戶更快的響應時間。快速緩存還可以平衡後端服務負載,允許現有硬件以最佳性能運行。
(注意:一些Redis服務提供商,如Amazon ElastiCache,僅支持將Redis作為緩存而非作為主數據庫。)
聊天、消息和隊列
在微服務架構中,強大的消息解決方案至關重要。這些各種服務集合需要在分布式環境中相互保持通信。消息協議如Pub/Sub對實現實時廣播通知,對提供最小延遲和高吞吐量不可或缺。排序集和和哈希為聊天室、社交媒體動態、實時評論流和服務器間通信提供了支持。另一種數據結構,列表,則可幫助創建輕量級的消息隊列。
會話存儲
會話管理依賴於個性化,應用程序需要處理大量數據,同時緩存和檢索用戶檔案和會話元數據。通過可靠的會話存儲,可以在亞毫秒級響應時間內擴展到數十億個字段-值對,並處理意外的流量峰值。
會話存儲管理會話數據,並通過緩存ID和令牌來提高可用性、身份驗證、用戶檔案和日志記錄性能。其減少了對主數據庫和計算資源的負載,最終節省了資金。
地理空間索引
地理空間數據整合了基於位置的功能,例如估算距離、到達時間和附近推薦。地理空間索引允許使用命令(如GEOADD、GEODIST、GEOHASH等)存儲和搜索坐標。
快速、強大,且易用。您還有哪些期待?
開發人員必須盡力提供具有吸引力的新功能的應用程序更新。這讓他們忙得不可開交,因為應用程序的叠代往往很難滿足用戶群體的期望。
為了加快產品上市速度,開發團隊必須實現亞毫秒級響應時間性能,並找到簡單的方法來應用多種數據模型,以獲得他們構建軟件的自由。
Redis Enterprise提供快速、強大且易於使用的解決方案,幫助開發團隊快速開發具有吸引力的新應用,解鎖亞毫秒響應時間的性能,並簡化應用多種數據模型的過程。當您開始構建您的下一個應用時,您會選擇哪種方式?了解這些使用Redis的經典案例,並以極致的效率和性能來構建你自己的強大應用程序。