溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么解決redis數(shù)據(jù)過多內(nèi)存過大問題

發(fā)布時間:2020-06-25 12:13:22 來源:億速云 閱讀:2996 作者:Leah 欄目:關系型數(shù)據(jù)庫

怎么解決redis數(shù)據(jù)過多內(nèi)存過大問題?針對這個問題,這篇文章給出了相對應的分析和解答,希望能幫助更多想解決這個問題的朋友找到更加簡單易行的辦法。

redis這個內(nèi)存數(shù)據(jù)庫,它的高性能、穩(wěn)定性都是不用懷疑的,但我們?nèi)Mredis的數(shù)據(jù)過多,內(nèi)存過大,那如果出問題,那它可能會帶給我們的就是災難性。

這幾年的線上業(yè)務表明,redis這個內(nèi)存數(shù)據(jù)庫,它的高性能、穩(wěn)定性都是不用懷疑的,但我們?nèi)Mredis的數(shù)據(jù)過多,內(nèi)存過大,那如果出問題,那它可能會帶給我們的就是災難性(我想很多公司都遇到過) 這里列舉一下,我們遇到的一些問題:

主庫宕機            

先來看一下主庫宕機容災過程,如下圖:

怎么解決redis數(shù)據(jù)過多內(nèi)存過大問題

在主庫宕機的時候,我們最常見的容災策略為“切主”。具體為從該集群剩余從庫中選出一個從庫并將其升級為主庫,該從庫升級為主庫后再將剩余從庫掛載至其下成為其從庫,最終恢復整個主從集群結(jié)構(gòu)。

以上是一個完整的容災過程,而代價最大的過程為從庫的重新掛載,而非主庫的切換。

解決辦法

解決辦法當然就是極力減少內(nèi)存的使用了,一般情況下,我們都是這么做的:

1 設置過期時間

對具有時效性的key設置過期時間,通過redis自身的過期key清理策略來降低過期key對于內(nèi)存的占用,同時也能夠減少業(yè)務的麻煩,不需要定期清理了

2 不存放垃圾到redis中

這簡直就是廢話,但是,有跟我們同病相憐的人么?

3 及時清理無用數(shù)據(jù)

例如一個redis承載了3個業(yè)務的數(shù)據(jù),一段時間后有2個業(yè)務下線了,那你就把這兩個業(yè)務的相關數(shù)據(jù)清理了唄

4 盡量對數(shù)據(jù)進行壓縮

例如一些長文本形式的數(shù)據(jù),壓縮能夠大幅度降低內(nèi)存占用

5 關注內(nèi)存增長并定位大容量key

不管是DBA還是開發(fā)人員,你用redis,你就必須關注內(nèi)存,否則,你其實就是不稱職的,這里可以分析redis實例中哪些key比較大從而幫助業(yè)務快速定位異常key(非預期增長的key,往往是問題之源)

6 pika

如果實在不想搞的那么累,那就把業(yè)務遷移到新開源的pika上面,這樣就不用太關注內(nèi)存了,redis內(nèi)存太大引發(fā)的問題,那也都不是問題了。

關于解決redis數(shù)據(jù)過多內(nèi)存過大問題的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI