unbound可以透過配置檔案中的cache-max-ttl
來設定快取的最大快取時間,這個會儲存MAX_TTL
全域性變數(預設值是10天)。
unbound在處理遞迴響應時的呼叫鏈是comm_point_udp_callback -> outnet_udp_cb -> serviced_udp_callback -> serviced_callbacks -> worker_handle_service_reply -> mesh_report_reply -> mesh_run -> iter_operate -> process_response
,在process_response
方法中,會先對響應包qstate->reply->c->buffer
呼叫parse_packet
方法進行解析,接著呼叫dns_alloc_msg
方法對解析出來資料進一步加工得到struct dns_msg *
資料。在dns_alloc_msg
方法內部就會對dns_msg->rep->ttl
設定為MAX_TTL
,然後再根據rr的ttl來跟dns_msg->rep->ttl
比較選出一個最小的ttl設定到dns_msg->rep->ttl
上(這裡會保證rr的ttl不小於MIN_TTL,無rr記錄的預設ttl是5s)。
關鍵方法:parse_copy_decompress
、rdata_copy
。
走到processQueryResponse
方法去處理響應結果,在呼叫iter_dns_store
方法快取結果時,內部判斷ttl為0就不快取了。
關鍵方法:dns_cache_store_msg
。
unbound中快取時間邏輯
相關文章
- 3.2.2的Model的快取邏輯快取
- 業務邏輯層快取應該設計快取
- Redis快取切面,防止Redis當機影響正常業務邏輯Redis快取
- 經典示例-在快樂中鍛鍊程式邏輯
- Azure Blob儲存更改快取時間快取
- 使用mysql日期與時間函式輕易搞定日期與時間邏輯MySql函式
- 倒數計時快取時間問題總結快取
- 解決ajax中ie快取問題(手動新增時間戳)快取時間戳
- Asp.Net Core中利用過濾器控制Nginx的快取時間ASP.NET過濾器Nginx快取
- 擴充套件邏輯卷空間套件
- 計算機程式的思維邏輯 (32) - 剖析日期和時間計算機
- localstorage實現帶過期時間的快取功能快取
- (3)計數器&時序邏輯
- lvm收縮邏輯卷空間LVM
- DG邏輯庫logstdby 日誌應用長時間不歸檔
- JS 中的邏輯運算子JS
- 如何在SPRING中同時管理本地快取和分散式快取? - techblogSpring快取分散式
- 從巢狀結構中取值時如何編寫兜底邏輯巢狀
- 在IDEAL下執行測試Memcached快取資料功能的時候,快取時間過期之坑Idea快取
- 二次封裝的快取框架wCache(支援快取時間、預設值)--微信小程式封裝快取框架微信小程式
- Redis和DelayQueue設計具有過期時間的快取Redis快取
- SAP ABAP 特性相關表取數邏輯
- let const快取for迴圈的中間變數快取變數
- dataguard之邏輯備庫表空間不足
- 分散式系統:Lamport邏輯時鐘分散式LAMP
- 當邏輯程式設計遭遇CQRS時程式設計
- 形式邏輯(普通邏輯)7:推理概述
- Python中的邏輯表示式Python
- oracle 取時間Oracle
- 優雅的快取解決方案--設定過期時間快取
- 硬解析和物理讀取與軟解析和邏輯讀取
- Oracle的邏輯結構(表空間、段、區間、塊)——表空間Oracle
- 計算機程式的思維邏輯 (95) - Java 8的日期和時間API計算機JavaAPI
- unbound原始碼分析原始碼
- SAP庫存表之間的邏輯關係
- 【6%】100小時機器學習——邏輯迴歸機器學習邏輯迴歸
- (9)邏輯綜合新增約束(時序、DRC)
- 輕投資專案優惠寄快遞程式賺錢邏輯