使用Redis,是否可以/似乎可以缓存动态列表查询?
如果我有一个包含论坛帖子的数据库。我想缓存搜索结果(这是一个文档列表),我是否可以使用Redis来缓存这些结果?
答案 0 :(得分:1)
如果您直接缓存查询的结果,那么您将在redis缓存中复制大量数据,这不是内存效率。 你应该使用两个redis结构,
列表 - >使用LPUSH存储与搜索查询匹配的postid列表,或者也可以使用CSV字符串而不是redis列表。
字符串 - >根据帖子ID存储论坛帖子内容。
实施例: 当用户搜索说'缓存'并且你获得了位置1,3,4,5,6, 当用户搜索'redis'时,你得到的是1,2,4,5,8
对于搜索“缓存”,您可以将1,3,4,5,6存储在带有“post_id_list#caching”键的redis列表中,当您进行检索时,您将执行MGET 1,3,4,5,6个论坛帖子的关键字。 类似地,对于搜索“redis”,您将使用键'post_id_list#redis'获取redis列表,然后为帖子键1,2,4,5,8执行MGET。