麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

Redis (四 redis的虛擬內存管理)

2019-11-14 11:46:07
字體:
來源:轉載
供稿:網友

Redis的數據保存在內存中,會出現內存不足的情況,redis2.0以后,新增了虛擬內存的功能,redis的VM與操作系統的VM類似,它把訪問很少的key放到內存里,卻把value放到磁盤上,從而實現快速把val導入內存。

操作系統自己有虛擬內存的概念,redis為什么要自己造輪子 ?

1  操作系統的VM是基于頁的概念,比如linux中每頁的大小是4k,而redis中的對象大多小于4K,一個頁上可能有多個redi對象,另外redis的集合可能對象類型,如set,list可能存在于多個頁上,redis自己實現可以達到更好的換入粒度

2  redis將交換到磁盤的對象壓縮,保存到磁盤的對象可以去除指針和對象元數據信息,一般壓縮后的對象比在內存中的對象小10倍,這樣redis的VM比操作系統的VM少很多IO操作

## VM的配置文件

vm-enabled yes   ##開啟vm

vm-swap-file  /tmp/redis.swap  ##交換出來的value保存的文件路徑(swap過大會造成磁盤空間浪費,過小會造成過多的磁盤碎片)

vm-max-memory  268435456   ##redis使用的最大內存上限,超過這個值后開始交換value到硬盤中

vm-page-size  32  ##設置每個頁面的大小為32字節

vm-pages   134217728  ##最多使用多少個頁面 vm-swap-file = vm-page-size*vm-pages

vm-max-threads  4  ##對象換入換出的工作線程的數量0表示不使用工作線程,使用主線程(會阻塞其它用戶)

redis的VM只是把value放到磁盤,所以,并不能解決key過多造成的內存不足

和操作系統一樣,redis也是按照頁來交換對象,一個頁只能保存一個對象,但是一個對象可以分布于多個頁

redis在內存中維護一個bitmap來映射這些頁是否被占用

redis默認fork出一個子進程來備份rdb文件,子進程在執行保存時與父進程共享swap文件,為避免父子進程同時操作,redis在子進程備份時,不允許父進程操作swap文件

redis允許debug操作,eg: set key val 

>debug key

### 阻塞式VM交換redisObject到磁盤的步驟,采用vmSwapObjectBlocking進行

(1)找到準備交換到磁盤的RedisObject對象

(2)調用vmSwapObjectBlocking將對象所關聯的value值交換至硬盤,它返回一個包含value存儲信息的vmPointer指針

(3)使用vmSwapObjectBlocking返回的vmPointer指針把RedisObject替換,把storage字段設為REDIS_VM_SWAPPED

(4)釋放對象所關聯的value所占用的內存空間

###非阻塞式VM采用vmSwapOneObjectThreaded進行,利用io線程實現

IO線程的處理如下

(1)從io_newjobs隊列取出一個IO任務

(2)處理IO任務

(3)把處理完成的IO任務放到io_PRocessd任務隊列

主線程收到io線程的信號就調用vmThreadedIOComletedJob對io_processd隊列中的任務進一步處理


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲特黄 | 福利在线影院 | 久久精品视频16 | 精品一区二区三区免费爱 | 国产成人精品自拍视频 | 国产精品爱久久久久久久 | 亚洲第一成人在线观看 | 亚洲天堂ww | 91短视频在线视频 | 成人视屏在线观看 | 91精品国产91 | 欧美一级做 | 黄污免费网站 | 欧美成人性生活片 | 日韩高清影视 | 人人舔人人舔 | 久草在线免费看 | 国产91亚洲精品一区二区三区 | 成人三级视频在线观看 | chinese军人gay呻吟 | 国产欧美精品综合一区 | a网在线 | www深夜成人 | 成人国产精品一区二区毛片在线 | 黄色免费在线网址 | 日本aⅴ在线 | 黄色va视频 | 久色乳综合思思在线视频 | 久草在线资源视频 | 精精国产xxxx视频在线野外 | 欧美日韩在线视频一区二区 | 姑娘第四集免费看视频 | 羞羞的小视频 | 九九热欧美 | 国产一区二区成人在线 | av91肉丝一区二区电影 | 久久影院免费观看 | 国产69精品久久久久99尤 | hdjapanesemassagehd日本 | 深夜福利视频绿巨人视频在线观看 | 99视频有精品 |