歡迎光臨
每天分享高質量文章

如何用Redis快取改善資料庫查詢性能?


調整一個關係型資料庫以實現高性能查詢是一個困難的工作。如果優化資料模型和調整查詢方式都不起作用,那麼管理員可以使用一個諸如Redis這樣的快取技術,這是一個提供記憶體內和持久資料儲存的關鍵值資料儲存方法。

因為Redis具有在資料儲存中快速讀寫資料的能力,所以它比關係型資料庫更具有性能優勢。但是,關鍵值資料儲存是簡單的;它們沒有一個類似於SQL的查詢語言或者結構化的資料模型。相反,它們有一個把鍵值作為與數值相關的識別符號來使用的簡單字典或哈希樣式。管理員使用這些鍵來進行數值的儲存和檢索。

鍵值儲存是簡單快速的,它可用於實現豐富資料模型和關係型資料庫查詢功能的良好匹配。但是,有時候還是使用鍵值與關係型資料庫的組合為好。此外,還有很多商業支持的鍵值資料庫,包括Redis、Riak和Areospike等。

為了運行一個優化熱門查詢性能的Redis快取,首先應確定你希望快取的查詢結果。其中,應重點關註最常用的和最耗時的查詢,然後確定應緩衝查詢中的資料。為簡便起見,快取查詢傳回的所有列值。

為鍵值定義一個命名約定;可以使用行主鍵和列名的組合來構造密鑰。例如,其主鍵ID為 198278的 產品描述可以‘198278:descry’的鍵值進行儲存。確保你的命名規則是簡單和規則驅動的,以便於使用最少的代碼來實現鍵的程式化創建。

接下來,確定是運行Redis快取作為自助管理服務還是運行亞馬遜的ElastiCache。運行用戶自己的Redis實體將賦予管理人員對快取的完全控制權。而這一控制權意味著靈活性,例如當有超出容量的情況出現時,管理人員有使用現有保留實體的權力。

此外,當用戶想要把應用程式從一家雲計算供應商遷移至另一家時,他們會發現完整的管理控制權限是非常有用的。

如果用戶選擇運行一個自助管理的Redis實體,可下載服務器。Redis的客戶端支持30種以上編程語言——從Java和Python到Prolog和Smalltalk。

已經使用AWS環境的企業可能會想要使用ElastiCache。除了諸如托管打補丁這樣的優點之外,亞馬遜ElastiCache支持一系列高速快取優化的節點型別,具體包括從中型到2X的m3節點、從大型到8X的r3節點以及從微型到中型的t2節點。ElastiCache還支持一些上一代的節點型別,例如選擇m1、m2、t1和c1節點。

ElastiCache還支持多個可用區。如果有一個節點發生故障,一個讀操作複製節點將取代故障節點。任何需要確保應用程式運行的DNS變更都是自動完成的,同時會創建一個新的讀操作副本。ElastiCache允許基於單位時間使用率的按需定價樣式,以及一年期或三年期預付費的節點使用條款。完整定價清單可以在這裡找到。

如果使用Redis快取和亞馬遜ElastiCache,那麼就可以從AWS管理控制台啟動一個集群。除了設置Redis服務外,還需要修改應用程式代碼以便於能夠使用快取。一個常用的樣式就是,檢查快取中是否存在有一個鍵值,如果沒有就執行一個SQL查詢以檢索資料,然後將其儲存在快取中。當緩衝存滿時,可以配置Redis刪除舊資料,這樣就不需要用戶使用專門的代碼來處理快取存滿的情況了。

出處:TechTarget

鏈接:http://www.searchcloudcomputing.com.cn/showcontent_88768.htm

赞(0)

分享創造快樂