日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Redis中Expiry處理的底層實(shí)現(xiàn)機(jī)制研究(redis過期底層實(shí)現(xiàn))

Redis是一個(gè)開源的,支持網(wǎng)絡(luò),基于內(nèi)存的數(shù)據(jù)存儲(chǔ)系統(tǒng),非常適合做緩存來使用。Redis存儲(chǔ)的數(shù)據(jù)維護(hù)有一定的時(shí)間,這就涉及到Expiry處理,即舍棄指定時(shí)間后失效的數(shù)據(jù)。

10年積累的成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先建設(shè)網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有老城免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

#### Expiry實(shí)現(xiàn)機(jī)制

Redis使用兩個(gè)二叉樹來完成Expiry操作:一個(gè)是鍵值對(duì)結(jié)構(gòu)的字典(dict),用來存放數(shù)據(jù);另一個(gè)是定時(shí)器紅黑樹(TTL RB-tree),用來記錄緩存時(shí)間信息。字典中的每個(gè)成員都會(huì)同時(shí)關(guān)聯(lián)節(jié)點(diǎn)紅黑樹中的一個(gè)節(jié)點(diǎn),這個(gè)節(jié)點(diǎn)中有個(gè)時(shí)間屬性表示緩存的失效時(shí)間。

每次Redis在數(shù)據(jù)庫中增加一個(gè)鍵值對(duì)時(shí),都會(huì)在ttl RB-tree中增加相應(yīng)的節(jié)點(diǎn),并設(shè)置失效時(shí)間。隨后,Redis會(huì)每秒掃描一次ttl RB-tree,將失效的節(jié)點(diǎn)從字典和ttl RB-tree移除。

Redis中的Expiry還使用了懶惰刪除的方法,即在每次查詢時(shí),先檢查這個(gè)節(jié)點(diǎn)是否失效,失效則移除,而不需要每次查詢都去移除失效值。

#### Expiry原理圖示

下面是Redis中Expiry實(shí)現(xiàn)操作的原理示意圖:

![expiry.png](https://www.runoob.com/wp-content/uploads/2019/05/expiry.png)

圖中表示,當(dāng)一個(gè)新數(shù)據(jù)鍵值對(duì)被添加進(jìn)字典(dict)中時(shí),會(huì)同時(shí)在ttl RB-tree中增加一個(gè)節(jié)點(diǎn),并設(shè)置節(jié)點(diǎn)的失效時(shí)間;隨后,Redis會(huì)每秒掃描ttl RB-tree,將失效的節(jié)點(diǎn)從字典和ttl RB-tree中移除。

#### 代碼實(shí)現(xiàn)

下面是Redis中Expiry實(shí)現(xiàn)代碼:

dict *d = server.db[id].dict;
rb_tree *t = &server.db[id].expires;

/* 添加一個(gè)新節(jié)點(diǎn) */
dictEntry *de = entry;
/* 新建ttl節(jié)點(diǎn)插入到紅黑樹t中 */
t->key = dict->key;
t->val = dict->val;
/* 設(shè)置節(jié)點(diǎn)失效時(shí)間 */
t->expire = expire;

/* 添加到綁定字典 */
dict linked list;
/* 掃描紅黑樹,移除失效的節(jié)點(diǎn) */
rb_tree *scan = rb_search_gt(t, expire);
if (scan) {
/* 移除待移除節(jié)點(diǎn) */
dict_delete(d, scan->key);
/* 移除紅黑樹節(jié)點(diǎn) */
rb_delete_node(t, scan);
/* 移除綁定字典元素 */
dict_unlink(linked_list, scan);
}

從上面的實(shí)現(xiàn)可以看出,Redis中Expiry處理的數(shù)據(jù)結(jié)構(gòu)和操作比較復(fù)雜,但是機(jī)制是非常好的,無論是從性能上還是安全性上都得到很好的保障。

成都網(wǎng)站推廣找創(chuàng)新互聯(lián),老牌網(wǎng)站營銷公司
成都網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)(www.cdcxhl.com)專注高端網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì)制作,網(wǎng)站維護(hù),網(wǎng)絡(luò)營銷,SEO優(yōu)化推廣,快速提升企業(yè)網(wǎng)站排名等一站式服務(wù)。IDC基礎(chǔ)服務(wù):云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)、服務(wù)器租用、服務(wù)器托管提供四川、成都、綿陽、雅安、重慶、貴州、昆明、鄭州、湖北十堰機(jī)房互聯(lián)網(wǎng)數(shù)據(jù)中心業(yè)務(wù)。


網(wǎng)頁題目:Redis中Expiry處理的底層實(shí)現(xiàn)機(jī)制研究(redis過期底層實(shí)現(xiàn))
分享地址:http://www.dlmjj.cn/article/cdcohee.html