介绍
在本实验中,你将探索 Redis 的基础数据结构,并学习如何使用 redis-cli 命令行工具与它们进行交互。本实验侧重于实践练习,帮助你理解如何在 Redis 中存储和检索数据。
你将首先从字符串(Strings)开始,学习如何设置、获取、检查键是否存在以及删除字符串值。然后,你将学习列表(Lists),使用 LPUSH 和 LRANGE 等命令。接下来,你将使用 SADD 和 SMEMBERS 管理集合(Sets)。最后,你将通过 HSET 和 HGET 探索哈希(Hashes)。这些动手实践经验将为你后续在各种应用中使用 Redis 打下坚实的基础。
使用字符串处理简单数据
在这一步中,我们将探索如何使用 Redis 存储和检索简单的字符串数据。Redis 常被用作缓存或简单的键值存储,而字符串是它提供的最基础的数据类型。
首先,让我们使用 redis-cli 命令行工具连接到 Redis 服务器。在 LabEx 虚拟机中打开终端。你应该已经处于 ~/project 目录下。
输入以下命令连接到 Redis 服务器:
redis-cli
你应该会看到如下提示符:
127.0.0.1:6379>
这表明你现在已经连接到了 Redis 服务器。
现在,让我们设置一个简单的字符串值。我们将使用 SET 命令。SET 命令接受两个参数:键(key)和值(value)。让我们将一个名为 mykey 的键设置为值 Hello Redis:
SET mykey "Hello Redis"
你应该会看到以下输出:
OK
这意味着该值已成功设置。
现在,让我们使用 GET 命令检索该值。GET 命令接受一个参数:键。让我们检索 mykey 的值:
GET mykey
你应该会看到以下输出:
"Hello Redis"
这证实了我们已成功在 Redis 中存储并检索了一个字符串值。
让我们尝试另一个例子。这次,我们将一个数字作为字符串存储。
SET counter 100
GET counter
你应该会看到:
"100"
即使它代表一个数字,Redis 也会将其视为字符串。
你还可以使用 EXISTS 命令检查键是否存在。
EXISTS mykey
你应该会看到:
(integer) 1
这表明键 mykey 存在。如果键不存在,该命令将返回 (integer) 0。
最后,让我们使用 DEL 命令删除该键。
DEL mykey
你应该会看到:
(integer) 1
这表明键 mykey 已被成功删除。
现在,如果你再次尝试获取 mykey 的值:
GET mykey
你应该会看到:
(nil)
这证实了该键已被删除。
记得退出 redis-cli 以确保你的命令被记录。输入:
exit
这将使你回到常规的终端提示符。
使用 LPUSH 和 LRANGE 操作列表
在这一步中,我们将探索如何使用 Redis 列表(Lists)来存储和检索有序的数据集合。Redis 列表实现为链表,这使得在列表的开头或结尾添加和删除元素非常高效。我们将重点介绍 LPUSH 和 LRANGE 命令。
我们将继续使用 redis-cli 命令行工具。如果你还没有连接,请在 LabEx 虚拟机中打开终端并输入:
redis-cli
现在,让我们创建一个列表并使用 LPUSH 命令向其中添加一些元素。LPUSH 将元素添加到列表的左侧(头部)。LPUSH 命令接受两个或多个参数:列表的键和要添加的值。让我们创建一个名为 mylist 的列表,并添加值 item1、item2 和 item3:
LPUSH mylist item1
你应该会看到以下输出:
(integer) 1
这意味着一个元素已被添加到列表中。LPUSH 的返回值是操作后列表的长度。
现在,让我们添加其他项:
LPUSH mylist item2
(integer) 2
LPUSH mylist item3
(integer) 3
现在,让我们使用 LRANGE 命令检索列表中的元素。LRANGE 返回列表中指定范围的元素。LRANGE 命令接受三个参数:列表的键、起始索引和结束索引。索引从 0 开始,因此第一个元素位于索引 0。要检索列表中的所有元素,我们可以使用起始索引 0 和结束索引 -1。
LRANGE mylist 0 -1
你应该会看到以下输出:
1) "item3"
2) "item2"
3) "item1"
请注意,元素返回的顺序与我们添加它们的顺序相反,因为 LPUSH 是将元素添加到列表的开头。
让我们再向列表中添加几个项目:
LPUSH mylist item4
LPUSH mylist item5
现在,让我们检索列表的前 3 个元素(索引 0 到 2):
LRANGE mylist 0 2
你应该会看到:
1) "item5"
2) "item4"
3) "item3"
你也可以使用负索引从列表末尾访问元素。例如,要检索列表的最后一个元素,可以使用索引 -1:
LRANGE mylist -1 -1
你应该会看到:
1) "item1"
记得退出 redis-cli 以确保你的命令被记录。输入:
exit
这将使你回到常规的终端提示符。
使用 SADD 和 SMEMBERS 管理集合
在这一步中,我们将探索如何使用 Redis 集合(Sets)来存储和管理无序的唯一元素集合。Redis 集合对于跟踪唯一访客、存储标签或管理对象之间的关系等任务非常有用。我们将重点介绍 SADD 和 SMEMBERS 命令。
我们将继续使用 redis-cli 命令行工具。如果你还没有连接,请在 LabEx 虚拟机中打开终端并输入:
redis-cli
现在,让我们创建一个集合并使用 SADD 命令向其中添加一些成员。SADD 向集合中添加一个或多个成员。SADD 命令接受两个或多个参数:集合的键和要添加的成员。让我们创建一个名为 myset 的集合,并添加成员 member1、member2 和 member3:
SADD myset member1
你应该会看到以下输出:
(integer) 1
这意味着一个成员已被添加到集合中。SADD 的返回值是添加到集合中的成员数量(不包括已存在的成员)。
现在,让我们添加其他项:
SADD myset member2
(integer) 1
SADD myset member3
(integer) 1
现在,让我们使用 SMEMBERS 命令检索集合中的成员。SMEMBERS 返回集合中的所有成员。SMEMBERS 命令接受一个参数:集合的键。
SMEMBERS myset
你应该会看到以下输出(成员的顺序可能会有所不同,因为集合是无序的):
1) "member3"
2) "member2"
3) "member1"
让我们尝试向集合中添加一个重复的成员:
SADD myset member1
你应该会看到:
(integer) 0
这表明没有添加新成员,因为 member1 已经存在于集合中。
让我们再向集合中添加几个成员:
SADD myset member4
SADD myset member5
现在,让我们再次检索所有成员:
SMEMBERS myset
你应该会看到类似这样的内容:
1) "member5"
2) "member4"
3) "member3"
4) "member2"
5) "member1"
顺序可能不同。
记得退出 redis-cli 以确保你的命令被记录。输入:
exit
这将使你回到常规的终端提示符。
使用 HSET 和 HGET 探索哈希
在这一步中,我们将探索如何使用 Redis 哈希(Hashes)来存储和检索字段-值对集合。Redis 哈希对于表示具有多个属性的对象非常有用。我们将重点介绍 HSET 和 HGET 命令。
我们将继续使用 redis-cli 命令行工具。如果你还没有连接,请在 LabEx 虚拟机中打开终端并输入:
redis-cli
现在,让我们创建一个哈希并使用 HSET 命令向其中添加一些字段和值。HSET 设置哈希中字段的值。HSET 命令接受三个参数:哈希的键、字段和值。让我们创建一个名为 myhash 的哈希,并将字段 field1 设置为值 value1:
HSET myhash field1 value1
你应该会看到以下输出:
(integer) 1
这意味着一个新字段已被添加到哈希中。如果字段是哈希中的新字段,HSET 返回 1;如果字段已存在且值已更新,则返回 0。
现在,让我们添加另一个字段:
HSET myhash field2 value2
(integer) 1
现在,让我们使用 HGET 命令检索字段的值。HGET 获取哈希中字段的值。HGET 命令接受两个参数:哈希的键和字段。让我们检索 myhash 中 field1 的值:
HGET myhash field1
你应该会看到以下输出:
"value1"
这证实了我们已成功在哈希中存储并检索了一个字段-值对。
让我们尝试更新现有字段的值:
HSET myhash field1 newvalue1
你应该会看到:
(integer) 0
这表明该字段已经存在,并且其值已更新。
现在,让我们再次检索 field1 的值:
HGET myhash field1
你应该会看到:
"newvalue1"
这证实了值已更新。
让我们再向哈希中添加几个字段:
HSET myhash field3 value3
HSET myhash field4 value4
记得退出 redis-cli 以确保你的命令被记录。输入:
exit
这将使你回到常规的终端提示符。
总结
在本实验中,我们探索了 Redis 的基础数据结构,首先从字符串开始。我们学习了如何使用 redis-cli 连接到 Redis 服务器,然后使用 SET 命令存储与键关联的字符串值。接着,我们使用 GET 命令检索了这些值。我们还观察了 Redis 如何处理存储为字符串的数字。
此外,我们学习了如何使用 LPUSH 和 LRANGE 创建和操作列表,使用 SADD 和 SMEMBERS 管理集合,以及使用 HSET 和 HGET 探索哈希。这些命令使你能够在 Redis 中存储和检索不同类型的数据,使其成为适用于各种应用的通用工具。记得在每一步之后退出 redis-cli,以确保你的命令被记录以便验证。


