RedisJson如何查询
时间: 2023-11-02 11:05:48 浏览: 19
RedisJson 支持多种查询方式,包括:
1. 基本查询:使用 Redis 命令 `JSON.GET` 获取指定键的值,并使用 `JSON.PARSE` 解析为 JSON 对象,然后使用标准的 JSON 查询方式。
例如,假设有以下 JSON 数据:
```
{
"name": "John",
"age": 30,
"address": {
"city": "New York",
"state": "NY",
"zip": "10001"
},
"phone_numbers": [
{
"type": "home",
"number": "555-1234"
},
{
"type": "work",
"number": "555-5678"
}
]
}
```
可以使用以下命令获取 `name` 字段的值:
```
JSON.GET mykey .name
```
可以使用以下命令获取 `address` 字段的 `city` 子字段的值:
```
JSON.GET mykey .address.city
```
可以使用以下命令获取 `phone_numbers` 字段的第一个元素的 `number` 字段的值:
```
JSON.GET mykey .phone_numbers[0].number
```
2. 索引查询:使用 Redis 命令 `JSON.INDEX` 创建索引,然后使用索引查询。
例如,可以使用以下命令创建 `name` 字段的索引:
```
JSON.INDEX mykey .name
```
可以使用以下命令查询 `name` 字段等于 `John` 的记录:
```
JSON.QUERY mykey '$.name == "John"'
```
可以使用以下命令查询 `age` 字段大于 `20` 的记录:
```
JSON.QUERY mykey '$.age > 20'
```
3. 文本查询:使用 Redis 命令 `JSON.SEARCH` 创建文本索引,然后使用文本查询。
例如,可以使用以下命令创建 `name` 字段的文本索引:
```
JSON.SEARCH mykey .name
```
可以使用以下命令查询 `name` 字段包含 `Jo` 的记录:
```
JSON.QUERY mykey '@name:Jo'
```
可以使用以下命令查询 `name` 字段以 `J` 开头的记录:
```
JSON.QUERY mykey '@name:J*'
```
以上是 RedisJson 的基本查询方式,还可以使用更高级的查询方式,如聚合查询、全文检索等。详细的查询语法和示例可以参考 RedisJson 的官方文档。