我有一个很大的json文件,其中包含一组结构化的位置数据(坐标、类别等),我需要在redis中创建键值对以供进一步查询。我已经能够在这里和那里找到一些信息,但我正在努力把它们整合成一些有用的东西
这是json的一般结构
{
"_id" : NumberInt(83412),
"contact" : {
"GooglePlaces" : null,
"Foursquare" : "https://foursquare.com/v/caf%C3%A9-vavin/4adcda06f964a520eb3221e3"
},
"name" : "Café Vavin",
"location" : {
"city" : "Paris",
"coord" : {
"coordinates" : [
2.3307001590729,
48.843868593865
],
"type" : "Point"
},
"address" : "18 rue Vavin"
}
考虑到Json数据是嵌套/多级的,您不能将它们直接存储在Redis散列中。因此,您必须序列化该值并将其存储为字符串(其他格式也可以,但为了简单起见,我们先使用字符串)。这意味着,当您
get
从Redis获取值时,必须将Json(存储为字符串)反序列化到代码中的相应对象。因此,键将是id
,值将是Json的其余部分作为字符串现在,继续将巨大的Json加载到Redis中,这是一个分两步的过程:
_id
的值并将其用作键,提取Json的其余部分并将其用作value
,如上面链接中所示的格式李>set
李>现在,如果您有
id
,您可以在set
上运行get
查询记住,Redis是一种内存缓存,经过优化可实现更快的存储和检索。您不能在Redis上运行复杂的查询,除非您根据不同的查询需要以不同的方式存储/复制数据。如果你想让我补充更多细节,请随意评论这个答案。在问题的评论部分,我只能回答这么多。因此,我把一切都整合到这个答案中。如果你想让我解决任何具体问题,我可以补充更多
质量插入的更多参考和示例:
相关问题 更多 >
编程相关推荐