新聞中心
在哪里

Redis是一個(gè)開源的高性能鍵值對(duì)存儲(chǔ)系統(tǒng),它的流行程度和用途越來越廣泛,但是對(duì)于Redis中的數(shù)據(jù)過期,它究竟又有什么樣的處理機(jī)制呢?這也成了一道謎題。
Redis使用帶過期時(shí)間的鍵值存儲(chǔ)方式。當(dāng)設(shè)置了數(shù)據(jù)過期時(shí)間后,一旦達(dá)到指定時(shí)間,Redis就會(huì)自動(dòng)將這個(gè)值從存儲(chǔ)介質(zhì)中刪除掉。
在線上環(huán)境下,由于Redis的訪問量會(huì)變的很大,因此當(dāng)某個(gè)過期的值被從內(nèi)存中刪除時(shí),并不意味著就會(huì)從存儲(chǔ)介質(zhì)中馬上刪除掉。事實(shí)上,此時(shí)Redis并不會(huì)立即將這個(gè)值從存儲(chǔ)中刪除,因?yàn)檫@樣做有可能會(huì)影響到線上服務(wù)的可用性,所以Redis為了保持其穩(wěn)定性,在數(shù)據(jù)被從內(nèi)存中刪除后會(huì)被緩存,當(dāng)空間滿載級(jí)別達(dá)到一定程度時(shí)才會(huì)將這些數(shù)據(jù)從存儲(chǔ)介質(zhì)中移除。
代碼示例:
“`java
//設(shè)置一條數(shù)據(jù)可在半小時(shí)后過期
jedis.set(“key”, “value”, “NX”, “EX”, 1800);
//定期清理緩存的數(shù)據(jù)
while (true) {
jedis.expire(“key”, 0);
//休眠半小時(shí)
Thread.sleep(30 * 1000 * 60);
}
總結(jié):Redis在處理數(shù)據(jù)過期問題時(shí),不會(huì)將過期的數(shù)據(jù)立即從存儲(chǔ)介質(zhì)中刪除,而是緩存到服務(wù)器端,等到空間滿載級(jí)別達(dá)到一定程度后才會(huì)將這些數(shù)據(jù)從存儲(chǔ)介質(zhì)中移除。
成都網(wǎng)站建設(shè)選創(chuàng)新互聯(lián)(?:028-86922220),專業(yè)從事成都網(wǎng)站制作設(shè)計(jì),高端小程序APP定制開發(fā),成都網(wǎng)絡(luò)營(yíng)銷推廣等一站式服務(wù)。
網(wǎng)頁(yè)標(biāo)題:謎團(tuán)Redis過期后數(shù)據(jù)留存(redis過期后數(shù)據(jù)還在)
新聞來源:http://www.5511xx.com/article/cocdsig.html


咨詢
建站咨詢
