最佳Redis练习缓存列表

时间:2017-09-17 21:58:49

标签: redis

使用Redis,是否可以/似乎可以缓存动态列表查询?

如果我有一个包含论坛帖子的数据库。我想缓存搜索结果(这是一个文档列表),我是否可以使用Redis来缓存这些结果?

1 个答案:

答案 0 :(得分:1)

如果您直接缓存查询的结果,那么您将在redis缓存中复制大量数据,这不是内存效率。 你应该使用两个redis结构,

  1. 列表 - >使用LPUSH存储与搜索查询匹配的postid列表,或者也可以使用CSV字符串而不是redis列表。

  2. 字符串 - >根据帖子ID存储论坛帖子内容。

  3. 实施例: 当用户搜索说'缓存'并且你获得了位置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。