自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Redis 生死簿是如何刪除數(shù)據(jù)的?

存儲(chǔ) 存儲(chǔ)軟件 Redis
Redis 中所有的鍵都可以設(shè)置過期策略,就像是所有的鍵都可以上"生死簿",上了生死簿的鍵到時(shí)間后閻王就會(huì)叉掉這個(gè)鍵。同一時(shí)間大量的鍵過期,閻王就會(huì)忙不過來。

Redis 中所有的鍵都可以設(shè)置過期策略,就像是所有的鍵都可以上"生死簿",上了生死簿的鍵到時(shí)間后閻王就會(huì)叉掉這個(gè)鍵。同一時(shí)間大量的鍵過期,閻王就會(huì)忙不過來。同時(shí)因?yàn)? Redis 是單線程的,導(dǎo)致閻王的處理時(shí)間會(huì)變得很長,而且處理繁忙,Redis 就會(huì)出現(xiàn)卡頓現(xiàn)象。

Redis 有三種策略刪除過期 Key

相關(guān)命令

  1. expire key seconds  # 過期時(shí)間為秒數(shù),key 不存在時(shí)返回(integer) 0,key 存在的時(shí)返回(integer) 1 
  2.  
  3. pexpire key milliseconds # 同 expire,設(shè)置的過期時(shí)間為毫秒數(shù) 
  4.  
  5. setex key seconds value # 只能設(shè)置字符串的過期時(shí)間 
  6.  
  7. ttl key # 查看 Key 的過期時(shí)間(秒數(shù)),用不過期返回(integer) -1,Key 不存在返回(integer) -2 
  8.  
  9. pttl key # 同 ttl,返回毫秒數(shù) 

過期 Key

Redis 的每個(gè)設(shè)置了過期時(shí)間的 Key 都會(huì)放在一個(gè)獨(dú)立的字典中,用于遍歷刪除。

過期策略

被動(dòng)刪除

Key 在被操作時(shí),Redis 主動(dòng)檢查 Key 是否過期,過期則刪除,返回 nil

  • 對 CPU 友好,只有 Key 在被操作時(shí)刪除,不會(huì)浪費(fèi) CPU 時(shí)間
  • 對內(nèi)存不友好,如果同時(shí)有大量的 Key 過期,這些 Key 在被使用之前不會(huì)被刪除,就會(huì)浪費(fèi)內(nèi)存

主動(dòng)刪除

Redis 會(huì)周期性的隨機(jī)掃描一批設(shè)置了過期時(shí)間的 Key 并進(jìn)行處理,Redis 每秒進(jìn)行10次過期掃描會(huì)做的操作有:

隨機(jī)掃描100個(gè)設(shè)置了過期時(shí)間的 Key

刪除所有發(fā)現(xiàn)的過期 Key

如果刪除的 Key 超過1/4則重復(fù)步驟1

  1. hz 10 

Redis 除了設(shè)置每秒10次的掃描頻率之外,還設(shè)置了每次掃描不會(huì)超過25ms 的上限,以防出現(xiàn)過度循環(huán)掃描,導(dǎo)致線程卡死。

maxmemory 

  1. # maxmemory <bytes> 

當(dāng)已用的內(nèi)存超過 maxmemory 配置的內(nèi)存時(shí),會(huì)觸發(fā)主動(dòng)清除策略

  1. # maxmemory-policy noeviction 
  • noeviction 永不過期策略,當(dāng)已用內(nèi)存超過 maxmemory 配置時(shí),寫操作將返回錯(cuò)誤,讀操作和 del 操作可以繼續(xù)服務(wù)。
  • volatile-lru 只刪除設(shè)置了過期時(shí)間的 Key,使用頻率越少的 Key 優(yōu)先刪除,不會(huì)對沒有設(shè)置過期時(shí)間的 Key 刪除
  • volatile-ttl 和上面一樣,只刪除設(shè)置過期時(shí)間的 Key,TTL 過期時(shí)間越少優(yōu)先刪除
  • volatile-random 隨機(jī)刪除快要過期的 Key
  • allkeys-lru 和 lru 一樣,刪除所有的 Key,沒有設(shè)置過期時(shí)間的 Key 也會(huì)被刪除
  • allkeys-random 和上面一樣,刪除掉隨機(jī)的 Key

Redis 采用的過期策略

被動(dòng)刪除+主動(dòng)刪除

總結(jié) 

學(xué)好 java 需要的剛需知識越來越多,越來越多...,還大伙兒都下班學(xué)學(xué)學(xué),就這樣的卷呀卷呀卷!

 

責(zé)任編輯:武曉燕 來源: Java技術(shù)指北
相關(guān)推薦

2014-04-14 13:05:41

RedisDBA服務(wù)器

2019-12-20 14:56:50

批量刪除數(shù)據(jù)數(shù)據(jù)刪除

2020-02-27 10:25:06

運(yùn)維架構(gòu)技術(shù)

2024-12-23 15:28:01

2011-02-21 10:35:00

查詢刪除數(shù)據(jù)

2011-05-18 15:08:03

mysql刪除修改數(shù)據(jù)

2010-09-02 10:15:46

SQL刪除

2023-09-05 08:40:57

刪除數(shù)據(jù)庫Oracle

2023-05-29 00:07:45

2009-09-14 10:45:33

LINQ刪除數(shù)據(jù)

2009-09-04 17:56:22

C#刪除數(shù)據(jù)

2010-11-04 14:39:44

DB2刪除數(shù)據(jù)

2021-03-22 08:51:59

RedisKey數(shù)據(jù)庫

2009-11-25 16:29:08

PHP刪除數(shù)組元素

2010-09-30 09:42:22

DB2刪除數(shù)據(jù)

2010-09-02 11:24:45

SQL刪除

2017-02-06 10:53:33

2010-10-22 16:40:27

SQL TRUNCAT

2017-04-01 18:30:47

MySQL誤刪除數(shù)據(jù)庫

2014-12-22 09:48:58

DBCAOracle 11
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號