使用 ReJSON 从 Redis 获取元素范围

Get range of elements from redis using ReJSON

所以在 json 中我们有一个名为 items 的键,它实际上包含一个元素数组,现在我们可以使用 [=10= 从该数组中获取选择性索引].

但在我们的例子中,我们需要从这个数组中获取一个范围,比如索引为 0-10、10-20 等 的元素,以便我们不不必在代码中获取完整数据然后过滤结果。

我正在寻找它的原因是,如果我们正在读取整个列表,那么由于数据大小会很大,数据传输延迟会增加,因为 API 使用它和 redis 服务器不在同一个实例上另外,如果可能,不必在代码中执行此操作更有意义。

首先,这是否可能?如果是,我们如何实现?

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

JSON.GET employees-list .items[1]
JSON.GET employees-list .items[2]
JSON.GET employees-list .items[3]
另一方面,

RedisJSON2 具有完整的 JSONPath 支持并支持此类查询,但目前为了向后兼容,它仅 returns 第一个元素(如 RedisJSON).大概下周会加入这种支持吧