在 Redis 中,使用 rdb.Keys(ctx, "nfprofile:*").Result()
可以获取所有匹配特定模式的键(keys)。这意味着如果你的数据以 "nfprofile:*"
作为前缀存储,那么这些键将被列出。
但你提供的 JSON 记录看起来是一个对象,而不是直接的键值对。如果它们被存储为字符串或其他形式的数据,你仍然可以通过符合上述模式的键来获取它们。例如:
假设你存储数据:
SET nfprofile:NF_INSTANCE_ID_12345 '{ "nfType" : "AMF", "nfStatus" : "REGISTERED", "plmnList" : [ { "mcc" : "460", "mnc" : "01" } ], "ipv4Addresses" : [ "192.168.0.1" ], "nfInstanceId" : "NF_INSTANCE_ID_12345" }' SET nfprofile:smf_12345 '{ "plmnList" : [ { "mcc" : "460", "mnc" : "01" } ], "ipv4Addresses" : [ "192.168.0.1" ], "nfInstanceId" : "smf_12345", ...}'
然后,你可以运行:
keys, err := rdb.Keys(ctx, "nfprofile:*").Result() if err != nil { // 处理错误 }
结果:
keys
列表中将包含所有以nfprofile:
开头的键。获取对应的值: 然后你可以遍历这些 keys,并用
GET
命令来取出相应的值:for _, key := range keys { value, err := rdb.Get(ctx, key).Result() if err != nil { // 处理错误,例如 key 不存在等情况 continue } fmt.Println(value) // 打印出 JSON 字符串 }
总之,只要你的 JSON 数据是以 "nfprofile:*"
前缀存储在 Redis 中,使用 Keys
方法就可以成功检索到这些记录。注意,Redis 的键名不能含有空格和特殊字符,所以请确保你的存储方式符合要求。
内容由零声教学AI助手提供,问题来源于学员提问