1.一種獲取域名后綴的方法,其特征在于,包括:
讀取配置數(shù)據(jù),用獲取到的配置數(shù)據(jù)更新緩存;
根據(jù)輸入的查詢參數(shù)及緩存中的域名后綴級(jí)別,在緩存中查詢得到對(duì)應(yīng)的域名后綴。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述讀取配置數(shù)據(jù)之后,用獲取到的配置數(shù)據(jù)更新緩存之前,還包括清除緩存的步驟。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于:
在所述讀取配置數(shù)據(jù),用獲取到的配置數(shù)據(jù)更新緩存之前,還包括開(kāi)啟緩存寫(xiě)鎖的步驟;
在所述讀取配置數(shù)據(jù),用獲取到的配置數(shù)據(jù)更新緩存之后,還包括關(guān)閉緩存寫(xiě)鎖的步驟。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述配置數(shù)據(jù)包括域名后綴及域名后綴級(jí)別。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述用獲取到的配置數(shù)據(jù)更新緩存,包括:
對(duì)配置數(shù)據(jù)中的每個(gè)域名后綴,經(jīng)過(guò)哈希計(jì)算得到對(duì)應(yīng)的哈希值;
將哈希值與哈希表數(shù)組長(zhǎng)度相與,得到對(duì)應(yīng)的哈希表數(shù)組位置;
根據(jù)該哈希表數(shù)組位置,將該域名后綴放入哈希表中;
取配置數(shù)據(jù)中所有域名后綴的最大域名后綴級(jí)別存儲(chǔ)在緩存中。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述讀取配置數(shù)據(jù),用獲取到的配置數(shù)據(jù)更新緩存為一個(gè)獨(dú)立線程,所述獨(dú)立線程定期重復(fù)執(zhí)行。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于:
所述根據(jù)輸入的查詢參數(shù)及緩存中的域名后綴級(jí)別,在緩存中查詢得到對(duì)應(yīng)的域名后綴之前,還包括開(kāi)啟緩存讀鎖的步驟;
所述根據(jù)輸入的查詢參數(shù)及緩存中的域名后綴級(jí)別,在緩存中查詢得到對(duì)應(yīng)的域名后綴之后,還包括關(guān)閉緩存讀鎖的步驟。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)輸入的查詢參數(shù)及緩存中的域名后綴級(jí)別,在緩存中查詢得到對(duì)應(yīng)的域名后綴,還包括:通過(guò)正則表達(dá)式從所述查詢參數(shù)中匹配出需要進(jìn)行查詢的域名。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述根據(jù)輸入的查詢參數(shù)及緩存中的域名后綴級(jí)別,在緩存中查詢得到對(duì)應(yīng)的域名后綴,包括:
獲取緩存中的域名后綴級(jí)別;
根據(jù)獲取的域名后綴級(jí)別,生成正則表達(dá)式,與所述需要進(jìn)行查詢的域名進(jìn)行匹配,在匹配后進(jìn)行判斷,判斷匹配出的結(jié)果是否在緩存中,如果緩存命中,則返回匹配結(jié)果,如果不在緩存中,則令域名后綴級(jí)別減一,重新生成正則表達(dá)式,繼續(xù)進(jìn)行匹配,直到返回匹配結(jié)果或返回空。
10.一種獲取域名后綴的裝置,其特征在于,包括:
緩存更新模塊,用于讀取配置數(shù)據(jù),用獲取到的配置數(shù)據(jù)更新緩存;
后綴查詢模塊,用于根據(jù)輸入的查詢參數(shù)及緩存中的域名后綴級(jí)別,在緩存中查詢得到對(duì)應(yīng)的域名后綴。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述緩存更新模塊還用于在讀取配置數(shù)據(jù)之后,用獲取到的配置數(shù)據(jù)更新緩存之前,清除緩存。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述緩存更新模塊還用于:
在讀取配置數(shù)據(jù),用獲取到的配置數(shù)據(jù)更新緩存之前,開(kāi)啟緩存寫(xiě)鎖;
在讀取配置數(shù)據(jù),用獲取到的配置數(shù)據(jù)更新緩存之后,關(guān)閉緩存寫(xiě)鎖。
13.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述配置數(shù)據(jù)包括域名后綴及域名后綴級(jí)別。
14.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述緩存更新模塊在用獲取到的配置數(shù)據(jù)更新緩存時(shí),執(zhí)行如下操作:
對(duì)配置數(shù)據(jù)中的每個(gè)域名后綴,經(jīng)過(guò)哈希計(jì)算得到對(duì)應(yīng)的哈希值;
將哈希值與哈希表數(shù)組長(zhǎng)度相與,得到對(duì)應(yīng)的哈希表數(shù)組位置;
根據(jù)該哈希表數(shù)組位置,將該域名后綴放入哈希表中;
取配置數(shù)據(jù)中所有域名后綴的最大域名后綴級(jí)別存儲(chǔ)在緩存中。
15.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述緩存更新模塊定期重復(fù)讀取配置數(shù)據(jù),用獲取到的配置數(shù)據(jù)更新緩存。
16.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述后綴查詢模塊還用于:
在根據(jù)輸入的查詢參數(shù)及緩存中的域名后綴級(jí)別,在緩存中查詢得到對(duì)應(yīng)的域名后綴之前,開(kāi)啟緩存讀鎖;
根據(jù)輸入的查詢參數(shù)及緩存中的域名后綴級(jí)別,在緩存中查詢得到對(duì)應(yīng)的域名后綴之后,關(guān)閉緩存讀鎖。
17.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述后綴查詢模塊還用于通過(guò)正則表達(dá)式從所述查詢參數(shù)中匹配出需要進(jìn)行查詢的域名。
18.根據(jù)權(quán)利要求17所述的裝置,其特征在于,所述后綴查詢模塊在根據(jù)輸入的查詢參數(shù)及緩存中的域名后綴級(jí)別,在緩存中查詢得到對(duì)應(yīng)的域名后綴時(shí),執(zhí)行如下操作:
獲取緩存中的域名后綴級(jí)別;
根據(jù)獲取的域名后綴級(jí)別,生成正則表達(dá)式,與所述需要進(jìn)行查詢的域名進(jìn)行匹配,在匹配后進(jìn)行判斷,判斷匹配出的結(jié)果是否在緩存中,如果緩存命中,則返回匹配結(jié)果,如果不在緩存中,則令域名后綴級(jí)別減一,重新生成正則表達(dá)式,繼續(xù)進(jìn)行匹配,直到返回匹配結(jié)果或返回空。