首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Golang缓存HTTP在内存中获得结果

Golang缓存HTTP在内存中获得结果
EN

Stack Overflow用户
提问于 2018-08-02 21:16:14
回答 2查看 1.4K关注 0票数 0

我正在做一个CLI在Go中,它会抓取一个网页来收集页面上所有链接的href属性到一个片段中。我希望将这个片段存储在内存中一段时间,这样就不会在每次执行CLI命令时都调用刮板。理想情况下,只有在缓存过期或用户提供某种--update标志之后才会调用刮板。

我偶然发现了库转缓存和其他类似的库,但据我所知,它们只适用于持续运行的东西,比如服务器。

我考虑过编写到文件的链接,但是在特定的持续时间之后,我将如何终止结果呢?为了使用像go-cache这样的库,在后台创建一个关闭一段时间的小型服务器是否有意义?任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-02 22:33:34

在这些设想中有两种主要方法:

  1. 创建作为数据存储库的守护进程、服务或后台应用程序。您可以根据需要将其作为HTTP服务器/ RPC服务器运行。然后,您的CLI应用程序将根据需要与此守护进程交互;
  2. 实现一种持久性机制,允许在多个CLI应用程序执行过程中写入和读取数据。您可以使用普通的文本文件、数据库,甚至是golang编码/gob的实现来在二进制文件之间写入和读取您的切片(映射可能更好)。

根据上面选择的策略/方法,您可以通过显式删除条目,或者在后续执行过程中不重写条目,从而在ttl过期后删除它们。

这样一个开放式问题的范围和数量太大了,无法在一个单一的答案中发布,而且很可能需要多个特定的问题。

票数 1
EN

Stack Overflow用户

发布于 2018-08-02 21:44:24

使用数据库并尽可能多地存储详细信息(fetched_at、主机、路径、标题、meta_desc、锚等)。稍后您将能够查询数据,以结构化格式进行查询将是有用的。如果不想处理db依赖项,可以嵌入诸如boltdb (纯go)或sqlite (cgo)之类的内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51662272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档