搜尋

首頁  >  問答  >  主體

關於redis持久化得一些思考

redis持久化分為兩種,RDB和AOF,快照和日誌

持久化的目的是為了資料備份和恢復,並不是用來儲存?

例如依照AOF日誌中記錄的都是redis操作指令來看,也就是redis記憶體中有多少數據,持久化到磁碟上就有多少資料。
不會出現,記憶體中沒有某個key,而持久化中卻有這個key的情況(忽略主從同步是否及時問題,同步完成資料就統一了,討論最後結果)

所以也不會出現類似以下兩種情況的應用:

1.内存不够了,将旧的数据不断持久化到磁盘,而保持新的数据一直在内存中情况(如果设置了淘汰策略,此时会调用)
2.想查询一个内存中没有,但被持久化到磁盘上的数据,这个磁盘上的数据会被交换到内存中供查询

這也就是redis不太適合做大量資料儲存的原因?因為記憶體中的資料量就是持久化的資料量,不會出現記憶體中快取一部分,等到記憶體到達設定值,將冷資料持久化而將新資料保留記憶體(新記憶體中-舊持久化)的情況。因為持​​久化的目的不是儲存而是備份和恢復,需要確保所恢復的資料是記憶體中最新的資料!

我不知道這樣的理解是否正確,請大神解釋一下!

伊谢尔伦伊谢尔伦2777 天前688

全部回覆(1)我來回復

  • 世界只因有你

    世界只因有你2017-04-25 09:04:13

    因為記憶體中的資料量就是持久化的資料量,不會出現記憶體中快取一部分? ? ?這句話怎麼理解?

    回覆
    0
  • 取消回覆