Redis MGET 命令用于一次获取多个 key 的 value ,其参数为一个或多个 key 。MGET 命令的返回值是一个数组,其中的每个元素对应一个 key 的 value 值。如果某个 key 不存在,那么它在返回数组中对应的是 nil 值。
MGET 命令的使用方法很简单,只需要使用 MGET key1 key2 ... keyn 的格式即可。下面提供两个实例来更好地说明 MGET 命令的用法:
获取指定的多个 key 的 value 值
127.0.0.1:6379> MSET key1 value1 key2 value2 key3 value3
OK
127.0.0.1:6379> MGET key1 key2 key3
1) "value1"
2) "value2"
3) "value3"
在此示例中,我们首先使用 MSET 命令创建了三个键值对,然后使用 MGET 命令一次获取了所有 key 的 value 值。MGET 命令返回的结果是一个数组,数组中依次包含了 key1、key2 和 key3 对应的 value 值。如果某个 key 不存在,那么在数组中对应的位置是 nil 值。
通过循环获取多个 key 的 value 值
127.0.0.1:6379> MSET user:1:name Jack user:1:age 18 user:2:name Susan user:2:age 25
OK
127.0.0.1:6379> EVAL "local result = {}; for i, key in ipairs(KEYS) do result[i] = redis.call('GET', key) end return result;" 4 user:1:name user:1:age user:2:name user:2:age
1) "Jack"
2) "18"
3) "Susan"
4) "25"
在这个示例中,我们首先使用 MSET 命令创建了四个键值对,其中两个 key 属于 user:1,另外两个 key 属于 user:2。然后,我们使用 EVAL 命令执行 Lua 脚本。该脚本通过循环获取多个 key 的 value 值,并返回一个数组,数组中依次包含了 user:1:name、user:1:age、user:2:name 和 user:2:age 对应的 value 值。在这个示例中,我们使用了 EVAL 命令来演示如何可以在 Lua 脚本中使用 MGET 命令来获取多个 key 的 value 值。