Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/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 可以在rejson数组中使用LRANGE吗?_Redis_Redisjson - Fatal编程技术网

Redis 可以在rejson数组中使用LRANGE吗?

Redis 可以在rejson数组中使用LRANGE吗?,redis,redisjson,Redis,Redisjson,我有一个带有rejson的Redis服务器,希望检索嵌套数组的一部分 数组不断变大,因为我使用后台作业添加数据。但我不需要所有的信息,只需要其中的一部分。但似乎没有JSON.arrange或“LRANGE”之类的东西。还有其他存档方法吗 对象结构示例: { cars: [ {company: "Ford", timestamp:"123133131" }, {company: "Mercedes", timestamp:"12165433131" }, ], pla

我有一个带有rejson的Redis服务器,希望检索嵌套数组的一部分

数组不断变大,因为我使用后台作业添加数据。但我不需要所有的信息,只需要其中的一部分。但似乎没有JSON.arrange或“LRANGE”之类的东西。还有其他存档方法吗

对象结构示例:

{ 
 cars:
[
      {company: "Ford", timestamp:"123133131" },
      {company: "Mercedes", timestamp:"12165433131" },
],
 planes: 
[
      {company: "Foo", timestamp:"3123213114"},
      {company: "Bar", timestamp:"3123213114"},
]
}
我想访问cars数组,但只是其中的一部分,比如说最近的300个

我是一个redis初学者,所以也许可以以某种方式“查询”数据


多谢各位

您可以通过对数据存储方式的细微修改来实现这一点。 1/在单独的redis列表中存储汽车、飞机等。 因此,对于关键的“汽车”,您的redis列表如下所示:

[
      {company: "Ford", timestamp:"123133131" },
      {company: "Mercedes", timestamp:"12165433131" },
        ………………. MORE CARS …………
],
类似地,还有一个单独的平面列表

2/现在,无论何时使用LPUSH将元素附加到cars列表,都可以执行LTRIM,直到N,以便列表中只有最近的N条记录


您甚至可以优化LTRIM操作的数量(而不是每次在LPUSH添加元素后都这样做):

否,在其当前版本(v1)中,RedisJSON不提供获取数组范围的方法。这预计将成为下一个版本的一部分,该版本将包括对JSONPath的完全支持。

正如Itamar建议的,完全支持JSONPath,它将用于RedisJSON,您可以在这里获得第一个测试版。最新的RedisJSON版本现在支持它了吗?