如何為應用提速?高效能資料庫Tair構建快取

一、引言
雲資料庫 Tair(相容 Redis®*)是相容開源Redis協議標準的資料庫服務,適用於快取、即時流資料處理等場景,具有穩定可靠、彈性擴充套件、易用高效等特點,並支援多種資料結構和高階功能。隨著業務發展,承載業務的應用將會面臨更大的流量壓力,如何降低系統的響應時間,提升系統性能成為了每一位開發人員需要面臨的問題,使用快取是首選方案。本方案介紹如何使用雲資料庫 Tair(相容 Redis®*)在ECS與RDS構建的應用中為應用提速,使用Nginx對外提供服務。
本次活動將帶大家瞭解雲資料庫 Tair(相容 Redis),透過體驗構建快取以提速應用,完成任務,即可領取羅馬仕安卓充電套裝,限量1000個,先到先得。邀請好友共同參與活動,還可贏取蘋果 HomePod mini、小米藍牙耳機等精美好禮!
二、部署準備

(一)準備賬號

1. 如果您還沒有阿里雲賬號,請訪問阿里雲賬號註冊頁面[1],根據頁面提示完成註冊。阿里雲賬號是您使用雲資源的付費實體,因此是部署方案的必要前提。
2. 為阿里雲賬號充值[2]。本方案的雲資源支援按量付費,且預設設定均採用按量付費引導操作。如果確定任何一個雲資源採用按量付費方式部署,賬戶餘額都必須大於等於100元。
(二)一鍵部署資源棧
1、開啟一鍵配置模板連結前往ROS控制檯,系統自動開啟使用新資源建立資源棧的面板,並在模板內容區域展示YAML檔案的詳細資訊。
2、確認好地域後,保持頁面所有選項不變,單擊下一步進入配置模板引數頁面。
3、在配置模板引數頁面修改資源棧名稱,可用區,配置ECS例項(推薦使用計算型c6,ecs.c6.large)。填寫完所有必選資訊並確認後單擊建立開始一鍵配置。
4、當資源棧資訊頁面的狀態顯示為建立成功時表示一鍵配置完成。
5、完成資源棧部署後,您需要呼叫模擬服務的初始化介面匯入模擬資料。
三、方案概覽
(一)透過對比訪問帶快取與不帶快取的介面,驗證快取功能
完成一鍵部署之後,透過ECS例項的公網IP可以訪問應用介面,透過不同引數驗證方案。
  1. 驗證不帶快取的介面
透過瀏覽器訪問:
http://<ECS公網IP>/getAllEmployeesInDepartment?departmentId=1&cacheFirst=false介面,收到返回值。
2、透過瀏覽器訪問:
http://<ECS公網IP>/getAllEmployeesInDepartment?departmentId=1&cacheFirst=true介面,返回值與步驟1相同,此時再次訪問此介面,收到返回值。可見message欄位中提示當前資料從快取中讀取。
3、驗證快取資料:
登入雲資料庫Redis版控制檯,在例項列表頁面,找到目標例項,點選例項名稱;
在新頁面點選登入資料庫,如出現了登入例項對話方塊,輸入資料庫賬號(此處為redis)密碼(此處為使用者設定的密碼),安全託管可以選擇不開啟,管控模式選擇自由操作,點選登入。
在SQLConsole中輸入:GET department:1,可以看到執行歷史中返回值為介面資料。
(二)透過Locust效能測試,驗證快取減輕資料庫壓力
為了進一步驗證方案在高併發場景下資料庫的壓力情況,我們使用負載測試工具 Locust(參考官方文件安裝) 進行測試。
1、效能測試:無快取介面
  1. 建立檔案locustfile.py
  2. 在命令列中執行locust啟動 Locust。開啟瀏覽器,訪問 Locust Web 介面: 
    http://localhost:8089,填寫新的測試引數。
  3. 啟動測試並執行一段時間後,點選 Stop 停止測試。
  4. 登入雲資料庫RDS控制檯,在例項列表頁面,找到目標例項,點選監控。
2、效能測試:快取介面
修改locustfile.py程式碼,在命令列中執行locust啟動 Locust,參考上一步的操作,完成測試,並檢視RDS監控。
3、對比分析:
對比前後兩次的資料庫監控資料,可以明顯看出,在測試無快取介面時,資料庫的流量吞吐量、TPS/QPS、執行次數等指標發生了顯著變化,出現了一個處理波峰。而在訪問帶快取的介面時,這些指標則更為平滑。具體來看,無快取訪問時的執行次數峰值接近700,而帶快取的情況下則穩定在個位數。這表明快取機制能夠有效緩解資料庫的壓力。
(三)透過刪除資料庫中的資料,驗證快取命中
清理資料庫中的資料記錄後,訪問快取介面:透過瀏覽器訪問:
http://<公網IP>/getAllEmployeesInDepartment?departmentId=1&cacheFirst=true介面,收到返回值,可見 message 欄位中提示當前資料從快取中讀取,說明快取已被正確命中。
四、清理資源
在本方案中,會建立1臺雲伺服器ECS例項、1個交換機、1個專有網路VPC、1個雲資料庫RDS MySQL版例項和1個雲資料庫Redis版例項。測試完方案後,您可以刪除對應產品的例項,避免繼續產生費用。
五、學習福利
想必你透過閱讀,已經學會如何運用高效能的雲資料庫 Tair 構建快取為應用提速。現在邀請你來到阿里雲開發者社群參加活動,完成任務一,任務二即可領取羅馬仕安卓充電套裝,限量1000個(同一使用者僅可領取一次獎品,使用者完成任務後需點選“領取獎品”按鈕進行領取)。邀請好友完成任務一和任務二,即有機會獲得蘋果 HomePod mini、小米藍牙耳機等精美好禮!
點選下方連結,去體驗如何運用高效能的雲資料庫 Tair 構建快取為應用提速~
活動連結:
https://developer.aliyun.com/topic/nov/tair?utm_content=g_1000398962
參考連結:
[1]https://account.aliyun.com/register/qr_register.htm
[2]https://help.aliyun.com/document_detail/324650.html
應對高併發,利用Redis版快取實現極速響應
本方案旨在基於雲資料庫Redis版(ApsaraDB for Redis)構建快取以提速應用,提升業務系統的效能,降低響應時間,使應用能夠承擔更高的負載。
點選閱讀原文檢視詳情。

相關文章