国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

網(wǎng)站建設(shè)安全級(jí)別自媒體平臺(tái)收益排行榜

網(wǎng)站建設(shè)安全級(jí)別,自媒體平臺(tái)收益排行榜,zeronet網(wǎng)站開(kāi)發(fā),wordpress菜偽靜態(tài)這里寫(xiě)目錄標(biāo)題一、Redis數(shù)據(jù)特征二、過(guò)期數(shù)據(jù)三、過(guò)期數(shù)據(jù)刪除策略3.1 數(shù)據(jù)刪除策略的目標(biāo)3.2 定時(shí)刪除3.3 惰性刪除3.4 定期刪除3.5 刪除策略對(duì)比3.6 實(shí)際應(yīng)用四、數(shù)據(jù)淘汰策略4.1 淘汰策略概述4.2 策略配置一、Redis數(shù)據(jù)特征 Redis是一種內(nèi)存級(jí)數(shù)據(jù)庫(kù),所有的數(shù)據(jù)…

這里寫(xiě)目錄標(biāo)題

  • 一、Redis數(shù)據(jù)特征
  • 二、過(guò)期數(shù)據(jù)
  • 三、過(guò)期數(shù)據(jù)刪除策略
    • 3.1 數(shù)據(jù)刪除策略的目標(biāo)
    • 3.2 定時(shí)刪除
    • 3.3 惰性刪除
    • 3.4 定期刪除
    • 3.5 刪除策略對(duì)比
      • 3.6 實(shí)際應(yīng)用
  • 四、數(shù)據(jù)淘汰策略
    • 4.1 淘汰策略概述
    • 4.2 策略配置

一、Redis數(shù)據(jù)特征

??Redis是一種內(nèi)存級(jí)數(shù)據(jù)庫(kù),所有的數(shù)據(jù)均存放在內(nèi)存中,內(nèi)存中的數(shù)據(jù)可以通過(guò)TTL指令獲取其狀態(tài)。
??TTL返回的值有三種情況:正數(shù),-1,-2

  • 正數(shù):代表該數(shù)據(jù)在內(nèi)存中還能存活的時(shí)間
  • -1:永久有效的數(shù)據(jù)
  • 2 :已經(jīng)過(guò)期的數(shù)據(jù) 或被刪除的數(shù)據(jù) 或 未定義的數(shù)據(jù)

二、過(guò)期數(shù)據(jù)

??Redis內(nèi)部,每當(dāng)我們?cè)O(shè)置一個(gè)鍵的過(guò)期時(shí)間時(shí),Redis就會(huì)將該鍵帶上過(guò)期時(shí)間存放到一個(gè)過(guò)期字典中。
??當(dāng)我們查詢一個(gè)鍵時(shí),Redis便首先檢查該鍵是否存在過(guò)期字典中,如果存在,那就獲取其過(guò)期時(shí)間。然后將過(guò)期時(shí)間和當(dāng)前系統(tǒng)時(shí)間進(jìn)行比對(duì),比系統(tǒng)時(shí)間大,那就沒(méi)有過(guò)期;反之判定該鍵過(guò)期。

三、過(guò)期數(shù)據(jù)刪除策略

3.1 數(shù)據(jù)刪除策略的目標(biāo)

在內(nèi)存占用與CPU占用之間尋找一種平衡,顧此失彼都會(huì)造成整體redis性能的下降,甚至引發(fā)服務(wù)器宕機(jī)或 內(nèi)存泄露

針對(duì)過(guò)期數(shù)據(jù)要進(jìn)行刪除的時(shí)候都有哪些刪除策略呢?

  • 1.定時(shí)刪除
  • 2.惰性刪除
  • 3.定期刪除

3.2 定時(shí)刪除

創(chuàng)建一個(gè)定時(shí)器,當(dāng)key設(shè)置有過(guò)期時(shí)間,且過(guò)期時(shí)間到達(dá)時(shí),由定時(shí)器任務(wù)立即執(zhí)行對(duì)鍵的刪除操作

  • 優(yōu)點(diǎn):節(jié)約內(nèi)存,到時(shí)就刪除,快速釋放掉不必要的內(nèi)存占用
  • 缺點(diǎn):CPU壓力很大,無(wú)論CPU此時(shí)負(fù)載量多高,均占用CPU,會(huì)影響redis服務(wù)器響應(yīng)時(shí)間和指令吞吐量
  • 總結(jié):用處理器性能換取存儲(chǔ)空間(拿時(shí)間換空間)

3.3 惰性刪除

數(shù)據(jù)到達(dá)過(guò)期時(shí)間,不做處理。等下次訪問(wèn)該數(shù)據(jù)時(shí),我們需要判斷

  1. 如果未過(guò)期,返回?cái)?shù)據(jù)
  2. 發(fā)現(xiàn)已過(guò)期,刪除,返回不存在
  • 優(yōu)點(diǎn):節(jié)約CPU性能,發(fā)現(xiàn)必須刪除的時(shí)候才刪除
  • 缺點(diǎn):內(nèi)存壓力很大,出現(xiàn)長(zhǎng)期占用內(nèi)存的數(shù)據(jù)
  • 總結(jié):用存儲(chǔ)空間換取處理器性能(拿時(shí)間換空間)

3.4 定期刪除

定時(shí)刪除和惰性刪除這兩種方案都是走的極端,那有沒(méi)有折中方案?

我們來(lái)講redis的定期刪除方案:

  • Redis啟動(dòng)服務(wù)器初始化時(shí),讀取配置server.hz的值,默認(rèn)為10

  • 每秒鐘執(zhí)行server.hz次serverCron()-------->databasesCron()--------->activeExpireCycle()

  • **activeExpireCycle()**對(duì)每個(gè)expires[*]逐一進(jìn)行檢測(cè),每次執(zhí)行耗時(shí):250ms/server.hz

  • 對(duì)某個(gè)expires[*]檢測(cè)時(shí),隨機(jī)挑選W個(gè)key檢測(cè)

  如果key超時(shí),刪除key如果一輪中刪除的key的數(shù)量>W*25%,循環(huán)該過(guò)程如果一輪中刪除的key的數(shù)量≤W*25%,檢查下一個(gè)expires[*],0-15循環(huán)W取值=ACTIVE_EXPIRE_CYCLE_LOOKUPS_PER_LOOP屬性值
  • 參數(shù)current_db用于記錄activeExpireCycle() 進(jìn)入哪個(gè)expires[*] 執(zhí)行

  • 如果activeExpireCycle()執(zhí)行時(shí)間到期,下次從current_db繼續(xù)向下執(zhí)行

  • 總的來(lái)說(shuō):定期刪除就是周期性輪詢r(jià)edis庫(kù)中的時(shí)效性數(shù)據(jù),采用隨機(jī)抽取的策略,利用過(guò)期數(shù)據(jù)占比的方式控制刪除頻度

  • 特點(diǎn)1:CPU性能占用設(shè)置有峰值,檢測(cè)頻度可自定義設(shè)置

  • 特點(diǎn)2:內(nèi)存壓力不是很大,長(zhǎng)期占用內(nèi)存的冷數(shù)據(jù)會(huì)被持續(xù)清理

  • 總結(jié):周期性抽查存儲(chǔ)空間(隨機(jī)抽查,重點(diǎn)抽查)

3.5 刪除策略對(duì)比

1:定時(shí)刪除:

節(jié)約內(nèi)存,無(wú)占用,
不分時(shí)段占用CPU資源,頻度高,
拿時(shí)間換空間

2:惰性刪除:

內(nèi)存占用嚴(yán)重
延時(shí)執(zhí)行,CPU利用率高
拿空間換時(shí)間

3:定期刪除:

內(nèi)存定期隨機(jī)清理
每秒花費(fèi)固定的CPU資源維護(hù)內(nèi)存
隨機(jī)抽查,重點(diǎn)抽查

3.6 實(shí)際應(yīng)用

實(shí)際應(yīng)用場(chǎng)景Redis的過(guò)期刪除策略就是:惰性刪除+定期刪除兩種策略配合使用。

    注:Redis服務(wù)器沒(méi)有使用定時(shí)刪除這種策略;

惰性刪除:Redis的惰性刪除策略由db.c/expireIfNeeded函數(shù)實(shí)現(xiàn),所有鍵讀寫(xiě)命令執(zhí)行之前都會(huì)調(diào)用expireIfNeeded函數(shù)對(duì)其進(jìn)行檢查,如果過(guò)期,則刪除該鍵,然后執(zhí)行鍵不存在的操作;未過(guò)期則不作操作,繼續(xù)執(zhí)行原有的命令。

定期刪除:由redis.c/activeExpireCycle函數(shù)實(shí)現(xiàn),函數(shù)以一定頻率執(zhí)行,每當(dāng)Redis的服務(wù)器性執(zhí)行redis.c/serverCron函數(shù)時(shí),activeExpireCycle函數(shù)就會(huì)被調(diào)用,它在規(guī)定的時(shí)間內(nèi),分多次遍歷服務(wù)器中的各個(gè)數(shù)據(jù)庫(kù),從數(shù)據(jù)庫(kù)的expires字典中隨機(jī)檢查一部分鍵的過(guò)期時(shí)間,并刪除其中的過(guò)期鍵

四、數(shù)據(jù)淘汰策略

4.1 淘汰策略概述

什么叫數(shù)據(jù)淘汰策略?什么樣的應(yīng)用場(chǎng)景需要用到數(shù)據(jù)淘汰策略?

當(dāng)新數(shù)據(jù)進(jìn)入redis時(shí),如果內(nèi)存不足怎么辦?在執(zhí)行每一個(gè)命令前,會(huì)調(diào)用**freeMemoryIfNeeded()**檢測(cè)內(nèi)存是否充足。如果內(nèi)存不滿足新 加入數(shù)據(jù)的最低存儲(chǔ)要求,redis要臨時(shí)刪除一些數(shù)據(jù)為當(dāng)前指令清理存儲(chǔ)空間。清理數(shù)據(jù)的策略稱(chēng)為逐出算法。

注意:逐出數(shù)據(jù)的過(guò)程不是100%能夠清理出足夠的可使用的內(nèi)存空間,如果不成功則反復(fù)執(zhí)行。當(dāng)對(duì)所有數(shù)據(jù)嘗試完畢, 如不能達(dá)到內(nèi)存清理的要求,將出現(xiàn)錯(cuò)誤信息如下

(error) OOM command not allowed when used memory >'maxmemory'

4.2 策略配置

影響數(shù)據(jù)淘汰的相關(guān)配置如下:

1:最大可使用內(nèi)存,即占用物理內(nèi)存的比例,默認(rèn)值為0,表示不限制。生產(chǎn)環(huán)境中根據(jù)需求設(shè)定,通常設(shè)置在50%以上

maxmemory ?mb

2:每次選取待刪除數(shù)據(jù)的個(gè)數(shù),采用隨機(jī)獲取數(shù)據(jù)的方式作為待檢測(cè)刪除數(shù)據(jù)

maxmemory-samples count

3:對(duì)數(shù)據(jù)進(jìn)行刪除的選擇策略

maxmemory-policy policy

那數(shù)據(jù)刪除的策略policy到底有幾種呢?一共是3類(lèi)8種

第一類(lèi):檢測(cè)易失數(shù)據(jù)(可能會(huì)過(guò)期的數(shù)據(jù)集server.db[i].expires )

volatile-lru:挑選最近最少使用的數(shù)據(jù)淘汰
volatile-lfu:挑選最近使用次數(shù)最少的數(shù)據(jù)淘汰
volatile-ttl:挑選將要過(guò)期的數(shù)據(jù)淘汰
volatile-random:任意選擇數(shù)據(jù)淘汰

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-rO91WUnz-1677378276118)(file://E:\鄧俊東學(xué)習(xí)\Redis\1.Redis高級(jí)\講義-md版本\img\lru.png?msec=1677376247604)]

第二類(lèi):檢測(cè)全庫(kù)數(shù)據(jù)(所有數(shù)據(jù)集server.db[i].dict )

allkeys-lru:挑選最近最少使用的數(shù)據(jù)淘汰
allkeLyRs-lfu::挑選最近使用次數(shù)最少的數(shù)據(jù)淘汰
allkeys-random:任意選擇數(shù)據(jù)淘汰,相當(dāng)于隨機(jī)

第三類(lèi):放棄數(shù)據(jù)驅(qū)逐

no-enviction(驅(qū)逐):禁止驅(qū)逐數(shù)據(jù)(redis4.0中默認(rèn)策略),會(huì)引發(fā)OOM(Out Of Memory)

注意:這些策略是配置到哪個(gè)屬性上?怎么配置?如下所示

maxmemory-policy volatile-lru

數(shù)據(jù)淘汰策略配置依據(jù)

使用INFO命令輸出監(jiān)控信息,查詢緩存 hit 和 miss 的次數(shù),根據(jù)業(yè)務(wù)需求調(diào)優(yōu)Redis配置

http://aloenet.com.cn/news/36213.html

相關(guān)文章:

  • 宜賓做網(wǎng)站公司營(yíng)銷(xiāo)策略都有哪些
  • 用html5做的美食網(wǎng)站百度明星人氣榜入口
  • 網(wǎng)站建設(shè)服務(wù)百度com百度一下你
  • 免費(fèi)網(wǎng)站建設(shè)哪個(gè)好 - 百度百度新聞排行榜
  • 竹子建站怎么樣上海優(yōu)化網(wǎng)站seo公司
  • 攜程電子商務(wù)網(wǎng)站建設(shè)微信營(yíng)銷(xiāo)的方法
  • wordpress建站如何制作微信seo顧問(wèn)能賺錢(qián)嗎
  • 營(yíng)銷(xiāo)網(wǎng)站搭建百度指數(shù)是搜索量嗎
  • 建設(shè)銀行網(wǎng)站是多少南京百度網(wǎng)站快速優(yōu)化
  • 互聯(lián)網(wǎng)公司網(wǎng)站模板百度極速版app下載安裝掙錢(qián)
  • 藍(lán)牙 技術(shù)支持 東莞網(wǎng)站建設(shè)安卓?jī)?yōu)化大師官方版
  • 佛山做網(wǎng)站哪家公司最好seo需要培訓(xùn)才能找到工作嗎
  • 做視頻鏈接網(wǎng)站seo網(wǎng)址大全
  • 用什么系統(tǒng)做威客網(wǎng)站seo教學(xué)實(shí)體培訓(xùn)班
  • 廣州做網(wǎng)站建設(shè)的公司泰安百度公司代理商
  • 網(wǎng)站建設(shè) 維護(hù)購(gòu)銷(xiāo)合同長(zhǎng)春seo按天計(jì)費(fèi)
  • 杭州市建設(shè)網(wǎng)站網(wǎng)上推廣企業(yè)
  • 如何 套用模板做網(wǎng)站線上營(yíng)銷(xiāo)模式
  • 幫我寫(xiě)一篇網(wǎng)站谷歌seo推廣培訓(xùn)班
  • 網(wǎng)站用視頻做背景音樂(lè)武漢seo公司出 名
  • 網(wǎng)站開(kāi)發(fā)mvc架構(gòu)重慶百度競(jìng)價(jià)開(kāi)戶
  • photoshop基礎(chǔ)入門(mén)教程做seo網(wǎng)頁(yè)價(jià)格
  • 網(wǎng)站響應(yīng)時(shí)間多久網(wǎng)絡(luò)營(yíng)銷(xiāo)崗位描述的內(nèi)容
  • 邢臺(tái)做網(wǎng)站推廣報(bào)價(jià)百度標(biāo)記號(hào)碼認(rèn)證平臺(tái)
  • 哪個(gè)網(wǎng)站diy做寶寶衣服網(wǎng)站怎么接廣告
  • 專(zhuān)門(mén)做app網(wǎng)站網(wǎng)站推廣和優(yōu)化的原因網(wǎng)絡(luò)營(yíng)銷(xiāo)
  • wordpress 多語(yǔ)言 插件網(wǎng)站搜索引擎優(yōu)化方法
  • 西安網(wǎng)站建設(shè)維護(hù)76人vs猛龍
  • 做一樣的模板網(wǎng)站會(huì)被告侵權(quán)嗎品牌營(yíng)銷(xiāo)策劃公司哪家好
  • 餐館網(wǎng)站怎么做的百度關(guān)鍵詞優(yōu)化排名