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

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

Redis (六 深入了解redis內核)

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

### 內存淘汰

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(),刪除數據


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 苏尼特左旗| 潍坊市| 和田市| 旺苍县| 会昌县| 杨浦区| 东乌珠穆沁旗| 高阳县| 合水县| 定结县| 巫溪县| 攀枝花市| 新竹县| 银川市| 平昌县| 夏津县| 湛江市| 林口县| 察隅县| 双桥区| 吉林市| 双柏县| 肥东县| 大埔县| 隆尧县| 景泰县| 兰溪市| 内乡县| 库尔勒市| 班玛县| 芦山县| 海兴县| 绿春县| 清水河县| 牙克石市| 德昌县| 广州市| 略阳县| 玉树县| 会同县| 尤溪县|