国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Redis (六 深入了解redis內(nèi)核)

2019-11-14 10:55:01
字體:
供稿:網(wǎng)友

### 內(nèi)存淘汰

Redis內(nèi)存不足時,有兩種處理方式:

(1)啟用虛擬內(nèi)存:將vm-enabled設(shè)置為yes

(2)啟用內(nèi)存淘汰:將maxmemory設(shè)置為一個大于0的整數(shù)

redis的使用內(nèi)存大于最大分配可用內(nèi)存時,開始進(jìn)行淘汰,memcache只有LRU算法,redis有

1 隨機(jī)淘汰:從數(shù)據(jù)庫隨機(jī)刪除一個key

2 LRU算法:刪除一個最近最少訪問的key

3 TTL淘汰:刪除最快過期的key

### 對象引用計數(shù)器

為了防止一個客戶端調(diào)用get的同時,另一個client調(diào)用del刪除key而導(dǎo)致的內(nèi)存端錯誤,redis使用了內(nèi)存引用計數(shù)器:給對象添加一個引用計數(shù)器,有新的引用時,計數(shù)+1 ,引用失效,計數(shù)器-1 ,引用計數(shù)為0時,redis把key刪除,對象初始化時,引用計數(shù)為1  get時,引用+1  del時,引用-1 

eg:實例化refcount=1  

           get refcount=2  

           del  refcount=1  

          get結(jié)束 refcount=1,此時可以被刪除

### 自動關(guān)閉超時連接

server.idletime是設(shè)置的timeout的時間,timeout=0時,自動關(guān)閉不會觸發(fā)

當(dāng)連接建立,卻不做任何操作時,超過timeout會自動斷開連接,當(dāng)使用連接池時,不用配置timeout的時間,否則連接池里的連接會因超時而斷開

### redis清除過期數(shù)據(jù)

redis為每個存儲的數(shù)據(jù)設(shè)置一個過期時間,超過這個時間,redis把過期數(shù)據(jù)刪除,redis刪除數(shù)據(jù)分兩個階段

(1)在定時器serverCron中進(jìn)行,每隔100ms執(zhí)行一次

        activeExpireCycle隨機(jī)獲取一些key,如果當(dāng)前時間>數(shù)據(jù)設(shè)置的過期時間,刪除key,如果這些key有25%的數(shù)據(jù)過期,清理過程會繼續(xù)進(jìn)行,以釋放更多的內(nèi)存

(2)在用戶get時,如果key的expiretime<time(),刪除數(shù)據(jù)


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 宣汉县| 平利县| 宣汉县| 宁陵县| 海安县| 乐清市| 屏东市| 丹棱县| 安国市| 扬州市| 台山市| 沈丘县| 沅陵县| 信阳市| 开鲁县| 塘沽区| 盐边县| 吴川市| 紫阳县| 绥化市| 古浪县| 常州市| 合江县| 米林县| 青河县| 赣榆县| 克东县| 鄱阳县| 廉江市| 漳州市| 苏尼特右旗| 塘沽区| 昭觉县| 湘乡市| 金门县| 海丰县| 双柏县| 綦江县| 唐海县| 邢台县| 定西市|