1

所以在 json 中,我们有一个名为items的键,它实际上包含一个元素数组,现在我们可以使用JSON.GET employees-list .items[1].

但是在我们的例子中,我们需要从这个数组中获取一个范围,比如索引为 0-10、10-20的元素用于分页目的,这样我们就不必在代码中获取整个数据然后过滤结果。

我正在寻找它的原因是因为如果我们正在读取整个列表,那么由于数据大小将是巨大的数据传输延迟会增加,因为使用它的 API 和 redis 服务器不在同一个实例上,而且不必这样做更有意义如果可能的话,用代码来做。

所以第一件事是它甚至可能,如果是的话,我们如何才能实现它?

4

1 回答 1

2

RedisJSON不支持完整的 JSONPath 语法,仅支持简单的单个路径。但是,您可以利用 Redis 管道支持来获得足够好的结果,以非阻塞方式发送以下内容:

JSON.GET employees-list .items[1]
JSON.GET employees-list .items[2]
JSON.GET employees-list .items[3]

另一方面, RedisJSON2具有完整的 JSONPath 支持并且确实支持此类查询,但目前为了向后兼容,它只返回第一个元素(如RedisJSON)。这种支持可能会在下周添加。

于 2020-02-13T15:58:18.140 回答