正在搜索服务中添加缓存



所以我正在设计一些搜索功能,用户可以搜索数百万个单词,比如推特。现在我将在这里构建索引服务,它将存储单词到推特的某种映射。现在我也想在这里引入缓存来存储最频繁的单词结果。我的怀疑是,如果某个单词的单词结果被缓存,比如"say";abc";,现在,所有的请求都将由缓存提供,让我们说这个词是如此流行,以至于它在缓存中保留了一周。现在,一周后也会有很多新的推文,索引映射可能会随着新推文而更新。那个么,我们如何指定若缓存中的结果是一个较旧的条目,那个么就丢弃它并获取新的结果呢?很明显,我可以使用缓存的写入策略,但我认为如果我们在写入策略中同时写入缓存和数据库,会影响搜索。我是不是错过了什么?我该如何处理?

对于类似推文的内容,如果您回复的搜索结果只有几分钟/小时,那也没关系。

理想情况下,我不建议进行直写缓存,因为它会增加复杂性,但低TTL将是更好的方法,除非您有一些特定的用例。此外,由于现在的搜索系统非常好,每隔一分钟搜索一次相同的文本也没什么坏处。

尽管如此,我还是制作了这个推特系统设计视频。想法?

或者你可以在CodeKarle的网站上找到一个简短的摘要。

最新更新