redis-cli json 键正则表达式匹配

问题描述 投票:0回答:1

我对 Redis 还很陌生。开始使用带有 ':' 分隔命名空间的 redis 来存储 pickle 数据。 在 Redis 客户端(例如 redisinsights)上使用通配符搜索来搜索存储的数据更容易。

例如如果数据以分层结构存储

键=源1:20240506:部分1:子类型1:1值=pickle(数据集1) 键=源1:20240506:部分2:子类型2:2值=pickle(数据集2)

客户端上的扫描(例如 source1:202405*)会显示一个密钥列表,然后可以单独探索这些密钥。

现在的问题是,如果我使用 json.set 代替,为什么不支持在键/命名空间上进行通配符搜索?

每当我尝试通配符扫描时,都不会显示任何数据。但是,如果我使用精确的密钥,则会显示数据。

json redis key wildcard
1个回答
0
投票

在我的机器上运行:

127.0.0.1:6379> json.set source1:20240506:part1:subtype1:1 $ '{ "foo": "bar" }'
OK
127.0.0.1:6379> json.set source1:20240506:part1:subtype1:2 $ '{ "baz": "qux" }'
OK
127.0.0.1:6379> scan 0 MATCH source1:202405* COUNT 100
1) "0"
2) 1) "source1:20240506:part1:subtype1:2"
   2) "source1:20240506:part1:subtype1:1"

这是您遇到的情况的准确示例吗?您使用什么版本的 Redis?

© www.soinside.com 2019 - 2024. All rights reserved.