介绍
在这个实验中,你将探索基础的 Redis 数据结构,以及如何使用 redis-cli 命令行工具与它们进行交互。这个实验侧重于实践练习,以帮助你理解如何在 Redis 中存储和检索数据。
你将从使用字符串(Strings)开始,学习如何设置(set)、获取(get)、检查存在性以及删除字符串值。然后,你将继续学习列表(Lists),使用诸如 LPUSH 和 LRANGE 等命令。接下来,你将使用 SADD 和 SMEMBERS 管理集合(Sets)。最后,你将使用 HSET 和 HGET 探索哈希(Hashes)。这种实践经验将为你提供在各种应用中使用 Redis 的坚实基础。
使用字符串处理简单数据
在这一步中,我们将探索如何使用 Redis 存储和检索简单的字符串数据。Redis 经常被用作缓存或简单的键值存储(key-value store),而字符串是它提供的最基本的数据类型。
首先,让我们使用 redis-cli 命令行工具连接到 Redis 服务器。在 LabEx 虚拟机(VM)中打开一个终端。你应该已经在 ~/project 目录中。
输入以下命令以连接到 Redis 服务器:
redis-cli
你应该看到如下所示的提示符:
127.0.0.1:6379>
这表明你现在已连接到 Redis 服务器。
现在,让我们设置一个简单的字符串值。我们将使用 SET 命令。SET 命令接受两个参数:键(key)和值(value)。让我们将一个名为 mykey 的键设置为值 Hello Redis:
SET mykey "Hello Redis"
你应该看到以下输出:
OK
这意味着该值已成功设置。
现在,让我们使用 GET 命令检索该值。GET 命令接受一个参数:键(key)。让我们检索 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 列表来存储和检索数据的有序集合。Redis 列表被实现为链表(linked lists),这使得它们在列表的开头或结尾添加和删除元素时非常高效。我们将重点关注 LPUSH 和 LRANGE 命令。
我们将继续使用 redis-cli 命令行工具。如果你尚未连接,请在 LabEx 虚拟机(VM)中打开一个终端并输入:
redis-cli
现在,让我们创建一个列表并使用 LPUSH 命令向其中添加一些元素。LPUSH 将元素添加到列表的左侧(头部)。LPUSH 命令接受两个或多个参数:列表的键(key)和要添加的值(value)。让我们创建一个名为 mylist 的列表,并添加值 item1、item2 和 item3:
LPUSH mylist item1
你应该看到以下输出:
(integer) 1
这意味着已将一个元素添加到列表中。LPUSH 的返回值是操作后列表的长度。
现在,让我们添加其他项目:
LPUSH mylist item2
(integer) 2
LPUSH mylist item3
(integer) 3
现在,让我们使用 LRANGE 命令检索列表的元素。LRANGE 返回列表中某个范围内的元素。LRANGE 命令接受三个参数:列表的键(key)、起始索引(start index)和结束索引(end index)。索引是基于 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 集合来存储和管理唯一元素的无序集合。Redis 集合对于诸如跟踪唯一访问者、存储标签或管理对象之间的关系等任务非常有用。我们将重点关注 SADD 和 SMEMBERS 命令。
我们将继续使用 redis-cli 命令行工具。如果你尚未连接,请在 LabEx 虚拟机(VM)中打开一个终端并输入:
redis-cli
现在,让我们创建一个集合并使用 SADD 命令向其中添加一些成员。SADD 向集合添加一个或多个成员。SADD 命令接受两个或多个参数:集合的键(key)和要添加的成员(member)。让我们创建一个名为 myset 的集合,并添加成员 member1、member2 和 member3:
SADD myset member1
你应该看到以下输出:
(integer) 1
这意味着已将一个成员添加到集合中。SADD 的返回值是添加到集合中的成员数(不包括已存在的成员)。
现在,让我们添加其他项目:
SADD myset member2
(integer) 1
SADD myset member3
(integer) 1
现在,让我们使用 SMEMBERS 命令检索集合的成员。SMEMBERS 返回集合的所有成员。SMEMBERS 命令接受一个参数:集合的键(key)。
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 哈希来存储和检索字段 - 值对的集合。Redis 哈希对于表示具有多个属性的对象非常有用。我们将重点关注 HSET 和 HGET 命令。
我们将继续使用 redis-cli 命令行工具。如果你尚未连接,请在 LabEx 虚拟机(VM)中打开一个终端并输入:
redis-cli
现在,让我们创建一个哈希并使用 HSET 命令向其中添加一些字段和值。HSET 设置哈希中字段的值。HSET 命令接受三个参数:哈希的键(key)、字段(field)和值(value)。让我们创建一个名为 myhash 的哈希,并将字段 field1 设置为值 value1:
HSET myhash field1 value1
你应该看到以下输出:
(integer) 1
这意味着已将一个新字段添加到哈希中。如果该字段是哈希中的新字段,则 HSET 的返回值为 1;如果该字段已存在并且该值已更新,则返回值为 0。
现在,让我们添加另一个字段:
HSET myhash field2 value2
(integer) 1
现在,让我们使用 HGET 命令检索字段的值。HGET 获取哈希中字段的值。HGET 命令接受两个参数:哈希的键(key)和字段(field)。让我们检索 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 命令存储与键(key)关联的字符串值。然后,我们使用 GET 命令检索了这些值。我们还了解了 Redis 如何处理存储为字符串的数字。
此外,我们还学习了使用 LPUSH 和 LRANGE 创建和操作列表(List),使用 SADD 和 SMEMBERS 管理集合(Set),以及使用 HSET 和 HGET 探索哈希(Hash)。这些命令允许你在 Redis 中存储和检索不同类型的数据,使其成为各种应用的多功能工具。请记住在每个步骤之后退出 redis-cli,以确保你的命令被记录以进行验证。


