Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
缓存列表的最佳Redis实践_Redis - Fatal编程技术网

缓存列表的最佳Redis实践

缓存列表的最佳Redis实践,redis,Redis,使用Redis,缓存动态列表查询是否可能/合理 如果我有一个论坛帖子数据库。我想缓存搜索结果(这是一个文档列表),我是否应该/可以使用Redis缓存这些结果?如果直接缓存查询结果,那么您将在Redis缓存中复制大量数据,这不利于内存使用。 您应该使用两个redis结构 Lists->使用LPUSH存储与搜索查询匹配的帖子列表,也可以使用CSV字符串代替redis列表 字符串->根据帖子id存储论坛帖子内容 例如: 当用户搜索“缓存”时,您得到的帖子是1,3,4,5,6, 当用户搜索“redis”

使用Redis,缓存动态列表查询是否可能/合理


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

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

  • Lists->使用LPUSH存储与搜索查询匹配的帖子列表,也可以使用CSV字符串代替redis列表

  • 字符串->根据帖子id存储论坛帖子内容

  • 例如: 当用户搜索“缓存”时,您得到的帖子是1,3,4,5,6, 当用户搜索“redis”时,您会得到postids 1、2、4、5、8

    对于搜索“缓存”,您将在redis列表中存储1,3,4,5,6,键为“post_id_list#caching”,当您检索它时,您将对1,3,4,5,6个论坛帖子的键进行搜索。
    类似地,对于搜索“redis”,您可以使用键“post_id_list#redis”获取redis列表,然后对post键1、2、4、5、8进行管理。

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

  • Lists->使用LPUSH存储与搜索查询匹配的帖子列表,也可以使用CSV字符串代替redis列表

  • 字符串->根据帖子id存储论坛帖子内容

  • 例如: 当用户搜索“缓存”时,您得到的帖子是1,3,4,5,6, 当用户搜索“redis”时,您会得到postids 1、2、4、5、8

    对于搜索“缓存”,您将在redis列表中存储1,3,4,5,6,键为“post_id_list#caching”,当您检索它时,您将对1,3,4,5,6个论坛帖子的键进行搜索。 类似地,对于搜索“redis”,您可以使用键“post_id_list#redis”获取redis列表,然后对post键1、2、4、5、8进行管理