我正在做一个CLI在Go中,它会抓取一个网页来收集页面上所有链接的href属性到一个片段中。我希望将这个片段存储在内存中一段时间,这样就不会在每次执行CLI命令时都调用刮板。理想情况下,只有在缓存过期或用户提供某种--update标志之后才会调用刮板。
我偶然发现了库转缓存和其他类似的库,但据我所知,它们只适用于持续运行的东西,比如服务器。
我考虑过编写到文件的链接,但是在特定的持续时间之后,我将如何终止结果呢?为了使用像go-cache这样的库,在后台创建一个关闭一段时间的小型服务器是否有意义?任何帮助都是非常感谢的。
发布于 2018-08-02 22:33:34
在这些设想中有两种主要方法:
根据上面选择的策略/方法,您可以通过显式删除条目,或者在后续执行过程中不重写条目,从而在ttl过期后删除它们。
这样一个开放式问题的范围和数量太大了,无法在一个单一的答案中发布,而且很可能需要多个特定的问题。
发布于 2018-08-02 21:44:24
使用数据库并尽可能多地存储详细信息(fetched_at、主机、路径、标题、meta_desc、锚等)。稍后您将能够查询数据,以结构化格式进行查询将是有用的。如果不想处理db依赖项,可以嵌入诸如boltdb (纯go)或sqlite (cgo)之类的内容。
https://stackoverflow.com/questions/51662272
复制相似问题