首页 > 解决方案 > Redigo:如何使用 Golang 从 Redis 获取键值映射?

问题描述

假设我的 Redis 中有这组键:

KEY           VALUE
"agent_100"   "{name: Agent1, status:online}"
"agent_200"   "{name: Agent2, status:offline}"
"agent_300"   "{name: Agent3, status:online}"
"agent_400"   "{name: Agent4, status:offline}"

我需要使用 Redigo 在 Golang 中返回包含所有这些键和值的映射。输出将类似于map[uint64]string带有此键值的 a:

100 -> "{name: Agent1, status:online}"
200 -> "{name: Agent2, status:offline}"
300 -> "{name: Agent3, status:online}"
400 -> "{name: Agent4, status:offline}"

如果我这样做,Scan我可以获得与模式匹配的所有键agent_*,也许然后我可以MGET使用所有这些键来获取值,但是我如何以简单的方式链接这些键和值?

没有一个库函数不仅可以获取与模式匹配的键,还可以获取值,所以我可以用它返回一个映射?

我现在正在使用redigo,但我也在研究go-redis是否有更简单的方法来实现这一点,我愿意考虑其他选择。

谢谢!

标签: goredisredigo

解决方案


MGET 保留订单。因此,如果您发送一个键列表,您应该期望结果的顺序相同,缺少的键包含 nil。


推荐阅读