您好,登錄后才能下訂單哦!
怎么解決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)存過大,那如果出問題,那它可能會帶給我們的就是災難性(我想很多公司都遇到過) 這里列舉一下,我們遇到的一些問題:
主庫宕機
先來看一下主庫宕機容災過程,如下圖:
在主庫宕機的時候,我們最常見的容災策略為“切主”。具體為從該集群剩余從庫中選出一個從庫并將其升級為主庫,該從庫升級為主庫后再將剩余從庫掛載至其下成為其從庫,最終恢復整個主從集群結(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)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。