语法

1
GET key

可用版本

≥ 1.0.0

时间复杂度

$O(1)$

ACL 类别

@read@string@fast

返回 key 的值,如果 key 不存在时,返回 nil。 如果存储在 key 的值不是字符串类型,则返回一个错误,因为 GET 命令只处理字符串值。

示例 1

在此示例中,我们演示了使用 GET 命令获取 foo 键在存在与不存在两种情况下的值。

首先,我们使用 EXISTS 命令检查 foo 键是否存在,返回 0,表示不存在。

然后,我们试图通过 GET 命令获取 foo 的值,由于键不存在,返回 nil

接着,我们使用 SET 命令给 foo 键设置字符串值 "Rain"SET 命令返回 OK,表示设置成功。

最后,再次使用 GET 命令获取 foo 的值,这次返回 "Rain"

1
2
3
4
5
6
7
8
9
redis> EXISTS foo
(integer) 0
redis> GET foo
(nil)
redis> SET foo "Rain"
OK
redis> GET foo
"Rain"
redis>

示例 2

在此示例中,我们演示了使用 GET 命令获取存储值为 list 类型的值时出现的错误。
首先,我们使用 LPUSH 命令向 listkey 键的左侧追加元素 "Rain"LPUSH 返回 1,表示列表现在有 1 个元素。

然后,我们使用 LRANGE 命令查看 listkey 列表的前 6 个元素,得到 ["Rain"],证明我们成功添加了元素。

接着,检查 listkey 的类型,得到 list,确认是一个列表。

最后,试图使用 GET 命令来读取 listkey 的值,但是得到 WRONGTYPE 错误,因为 GET 命令只能用于字符串键,而 listkey 是一个列表键。

1
2
3
4
5
6
7
8
9
redis> LPUSH listkey "Rain"
(integer) 1
redis> LRANGE listkey 0 5
1) "Rain"
redis> TYPE listkey
list
redis> GET listkey
(error) WRONGTYPE Operation against a key holding the wrong kind of value
redis>

(END)