我通过像这样扁平化JSON路径键来表示Redis中的JSON对象:
{
"users": [
{
"name": "John Smith",
"address": {
"street": "12 Rainbow Avenue",
"country": "Fuzzyland"
}
}, {
"name": "Billy Bob",
"address": {
"street": "8 Rocky Lane",
"country": "Fraggleville"
}
}
]
}
users // SET [0, 1]
users:0 // SET [name, address]
users:0:name // STRING "John Smith"
users:0:address // SET [street, country]
users:0:address:street // STRING "12 Rainbow Avenue"
users:0:address:country // STRING "Fuzzyland"
users:1 // SET [name, address]
users:1:name // STRING "Billy Bob"
users:1:address // SET [street, country]
users:1:address:street // STRING "8 Rocky Lane"
users:1:address:country // STRING "Fraggleville"
如您所见,对于数组或对象文字的属性,我正在使用Redis SET存储可用的键。
使用Node将JSON对象转换为该结构对我来说很容易。但是,我对Redis的经验不足,无法编写将复杂结果组合在一起的递归查询。
例如,假设我要获取users:1
的所有键和值。如何编写一个查询,查看users:1
的值,发现它是一个SET,因此将其值用作另一组查询键?