第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Golang緩存HTTP GET結(jié)果在內(nèi)存中

Golang緩存HTTP GET結(jié)果在內(nèi)存中

Go
犯罪嫌疑人X 2021-04-09 18:15:52
我正在使用Go中的CLI進行抓取,該CLI會抓取網(wǎng)頁以將頁面上所有鏈接的href屬性收集到一個切片中。我想將此切片存儲在內(nèi)存中一段時間,以免在每次執(zhí)行CLI命令時都不調(diào)用刮板。理想情況下,只有在緩存過期或用戶提供某種--update標(biāo)志后才調(diào)用刮板。我遇到了庫go-cache和其他類似的庫,但是據(jù)我所知,它們僅適用于持續(xù)運行的內(nèi)容,例如服務(wù)器。我曾考慮過將鏈接寫入文件,但是在特定的持續(xù)時間之后如何使結(jié)果過期?在后臺創(chuàng)建一個小型服務(wù)器以使用類似的庫go-cache是否會有意義,這會在一段時間后關(guān)閉嗎?任何幫助表示贊賞。
查看完整描述

2 回答

?
白衣染霜花

TA貢獻1796條經(jīng)驗 獲得超10個贊

在這些情況下,有兩種主要方法:

  1. 創(chuàng)建充當(dāng)數(shù)據(jù)存儲庫的守護程序,服務(wù)或后臺應(yīng)用程序。您可以根據(jù)需要將其作為HTTP服務(wù)器/ RPC服務(wù)器運行。然后,您的CLI應(yīng)用程序?qū)⒏鶕?jù)需要與此守護程序進行交互。

  2. 實現(xiàn)一種持久性機制,該機制將允許在多個CLI應(yīng)用程序執(zhí)行之間寫入和讀取數(shù)據(jù)。您可以使用普通的文本文件,數(shù)據(jù)庫,甚至可以使用golang的編碼/對象的實現(xiàn)在二進制文件中讀寫切片(映射可能會更好)。

您可以根據(jù)上面選擇的策略/方法,通過顯式刪除條目或在后續(xù)執(zhí)行期間不重寫它們,來對條目進行時間戳記并在它們的ttl過期后簡單地將其刪除。

這樣一個開放式問題的示例范圍和數(shù)量太多,無法在單個答案中發(fā)布,并且很可能需要多個特定問題。


查看完整回答
反對 回復(fù) 2021-04-19
?
ABOUTYOU

TA貢獻1812條經(jīng)驗 獲得超5個贊

使用數(shù)據(jù)庫并存儲盡可能多的詳細信息(fetched_at,主機,路徑,標(biāo)題,meta_desc,錨點等)。您以后可以查詢數(shù)據(jù),將其以結(jié)構(gòu)化格式使用將很有用。如果您不想處理db依賴關(guān)系,則可以嵌入boltdb(pure go)或sqlite(cgo)之類的東西。


查看完整回答
反對 回復(fù) 2021-04-19
  • 2 回答
  • 0 關(guān)注
  • 348 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號