【问题标题】:Get range of elements from redis using ReJSON使用 ReJSON 从 redis 获取元素范围
【发布时间】:2020-02-13 13:37:51
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: redis redisjson


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-01-05
      • 2012-09-29
      • 1970-01-01
      • 1970-01-01
      • 2015-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多