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

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

Redis (六 深入了解redis內核)

2019-11-14 10:54:14
字體:
來源:轉載
供稿:網友

### 內存淘汰

Redis內存不足時,有兩種處理方式:

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

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

redis的使用內存大于最大分配可用內存時,開始進行淘汰,memcache只有LRU算法,redis有

1 隨機淘汰:從數據庫隨機刪除一個key

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

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

### 對象引用計數器

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

eg:實例化refcount=1  

           get refcount=2  

           del  refcount=1  

          get結束 refcount=1,此時可以被刪除

### 自動關閉超時連接

server.idletime是設置的timeout的時間,timeout=0時,自動關閉不會觸發

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

### redis清除過期數據

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

(1)在定時器serverCron中進行,每隔100ms執行一次

        activeExpireCycle隨機獲取一些key,如果當前時間>數據設置的過期時間,刪除key,如果這些key有25%的數據過期,清理過程會繼續進行,以釋放更多的內存

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


上一篇:CacheHelper.cs

下一篇:List comprehension

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 城市| 万荣县| 文化| 广东省| 台东市| 四川省| 无锡市| 大兴区| 南陵县| 新安县| 康乐县| 册亨县| 辽阳县| 泊头市| 广德县| 安达市| 锡林浩特市| 彭水| 丹棱县| 蒙阴县| 榆社县| 榆林市| 四平市| 琼海市| 甘泉县| 句容市| 保康县| 安康市| 老河口市| 抚宁县| 西丰县| 赤水市| 若尔盖县| 济南市| 文水县| 陆河县| 定西市| 宜兴市| 泰宁县| 唐海县| 龙里县|