redis内存使用建議?VM-虛拟内存機制就是暫時把不經常訪問的數據(冷數據)從内存中交換到磁盤中,從而騰出寶貴的内存空間存儲其他需要訪問的熱數據,我來為大家科普一下關于redis内存使用建議?下面希望有你要的答案,我們一起來看看吧!
VM-虛拟内存機制就是暫時把不經常訪問的數據(冷數據)從内存中交換到磁盤中,從而騰出寶貴的内存空間存儲其他需要訪問的熱數據。
redis提高數據庫容量的辦法:
1、集群模式,将數據分散到多個redis分片中(常用方案)
2、使用VM-虛拟内存,将數據交換到磁盤中(不常用,數據交換過程中會影響性能)
VM的工作機制,分為兩種:一種是vm-max-threads=0,一種是vm-max-threads>0
第一種vm-max-threads=0
數據換出:主線程定期檢查使用的内存大小,如果發現内存超出最大的上限,會直接以阻塞的方式,将選中的對象換出到磁盤上(保存磁盤文件),并釋放對象占用的内存,此過程會一直重複,直到一下條件任意滿足:
a、内存使用降到最大限制以下
b、設置交換文件的數量達到上限
c、幾乎全部的對象都被交換到磁盤了
數據換入:當有client請求key對應的value時,主線程會以阻塞的方式從換出文件中加載對應的value,加載時會阻塞所有client
第二種vm-max-threads>0
數據換出:當主線程檢測到内存超過最大限制,會将選中的交換數據放到一個隊列中交由工作線程後台處理,主線程會繼續處理client請求
數據換入:當client請求key對應的value時,主線程會先阻塞當前client,讓後将加載對象的信息放到一個隊列中,讓工作線程去處理,此時主線程處理其他client請求,當工作線程處理完畢後通知主線程,主線程再去執行被阻塞的client命令。這種方式隻會阻塞單個client
其他:
适合key小,value大的場景
選擇交換的value時,會選擇長時間不用,且value更大的對象
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!