我有一个带有rejson的Redis服务器,并且不想检索嵌套数组的一部分。
该数组不断变大,因为我添加了带有后台作业的数据。但是我不需要所有信息,仅一部分。但是似乎没有JSON.ARRRANGE或“ LRANGE”或其他东西。还有其他存档方法吗?
示例对象结构:
<!-- if the gtin12 should be visible on the page -->
<article itemscope itemtype="http://schema.org/Product">
<p itemprop="gtin12">{$product.upc}</p>
</article>
我想访问cars数组,但只访问其中一部分,可以说是最近的300。
我是一名Redis初学者,因此也许可以以某种方式“查询”数据。
非常感谢您!
答案 0 :(得分:1)
否,在当前版本(v1)中,RedisJSON不提供获取数组范围的方法。预计它将成为下一版本的一部分,该版本将完全支持JSONPath。
答案 1 :(得分:0)
您可以通过稍作修改来实现此目的,以存储数据。 1 /将汽车,飞机等存放在单独的redis列表中。 因此对于关键的“汽车”,您的redis列表如下所示:
[
{company: "Ford", timestamp:"123133131" },
{company: "Mercedes", timestamp:"12165433131" },
………………. MORE CARS …………
],
类似地,飞机的单独清单。
2 /现在,每当您使用LPUSH将元素添加到汽车列表中时,都可以执行LTRIM直到N,以便列表中仅包含最近的N条记录。
您甚至可以优化LTRIM操作的数量(而不是在LPUSH添加元素后每次都这样做):https://stackoverflow.com/a/37875025/533399