Redis 中的基本键值操作

RedisBeginner
立即练习

介绍

在这个实验中,你将学习 Redis 中基本的键值(key-value)操作。我们将使用 redis-cli 命令行界面与 Redis 服务器交互,并执行基本操作,例如设置(setting)、获取(getting)、检查存在性(checking existence)、删除(deleting)和设置键的过期时间(setting expiration times)。完成这个实验后,你将对如何使用 Redis 作为简单的数据存储有扎实的理解。

设置和检索键值对

在这一步中,我们将重点介绍在 Redis 中设置和检索键值对的核心操作。这是使用 Redis 作为数据存储的基础。

Redis 将数据存储为键值对,类似于字典。键(key)是一个唯一的标识符,而值(value)是与该键相关联的数据。

  1. 连接到 Redis:

    在 LabEx 虚拟机(VM)中打开一个终端。你应该已经在 ~/project 目录中。使用 redis-cli 命令连接到 Redis 服务器:

    redis-cli
    

    你应该看到 Redis 提示符:127.0.0.1:6379>。这表示已成功连接到 Redis 服务器。

  2. 设置一个键值对:

    让我们使用 SET 命令设置一个键值对。我们将键 mykey 设置为值 myvalue

    SET mykey myvalue
    

    Redis 将响应:

    OK
    

    这确认键值对已成功存储。

  3. 获取键的值:

    要检索与键关联的值,请使用 GET 命令。让我们检索 mykey 的值:

    GET mykey
    

    Redis 将响应:

    "myvalue"
    

    这表明我们已成功检索与键 mykey 关联的值。

  4. 设置另一个键值对:

    让我们使用不同的键和值设置另一个键值对。这次,我们将使用 user:1001 作为键,John 作为值。

    SET user:1001 John
    

    Redis 将响应:

    OK
    
  5. 获取新键的值:

    现在,让我们检索 user:1001 键的值:

    GET user:1001
    

    Redis 将响应:

    "John"
    

    你现在已成功在 Redis 中设置和检索键值对。

  6. 退出 Redis CLI:

    重要的是在每个步骤之后退出 Redis CLI,以便正确记录命令。输入:

    exit
    

    Redis CLI 连接成功示例

检查键是否存在

在这一步中,我们将学习如何使用 EXISTS 命令检查 Redis 中是否存在某个键。这对于确定在尝试检索其值或执行其他操作之前是否已设置键非常有用。

  1. 连接到 Redis:

    使用 redis-cli 命令连接到 Redis 服务器:

    redis-cli
    

    你应该看到 Redis 提示符:127.0.0.1:6379>

  2. 检查现有键的存在性:

    在上一步中,我们设置了键 mykey。让我们使用 EXISTS 命令检查它是否存在:

    EXISTS mykey
    

    Redis 将响应:

    (integer) 1
    

    响应 1 表示键 mykey 存在于 Redis 中。

  3. 检查不存在的键的存在性:

    现在,让我们检查一个我们尚未设置的键是否存在。例如,让我们检查一个名为 nonexistentkey 的键:

    EXISTS nonexistentkey
    

    Redis 将响应:

    (integer) 0
    

    响应 0 表示键 nonexistentkey 不存在于 Redis 中。

  4. 退出 Redis CLI:

    退出 Redis CLI 以确保记录命令:

    exit
    

删除键

在这一步中,我们将学习如何使用 DEL 命令从 Redis 中删除键。这对于管理数据和删除过时或不需要的条目至关重要。

  1. 连接到 Redis:

    使用 redis-cli 命令连接到 Redis 服务器:

    redis-cli
    

    你应该看到 Redis 提示符:127.0.0.1:6379>

  2. 删除现有键:

    在之前的步骤中,我们设置了键 mykey。让我们使用 DEL 命令删除它:

    DEL mykey
    

    Redis 将响应:

    (integer) 1
    

    响应 (integer) 1 表示成功删除了一个键。

  3. 删除不存在的键:

    让我们尝试删除一个不存在的键,例如 nonexistentkey

    DEL nonexistentkey
    

    Redis 将响应:

    (integer) 0
    

    响应 (integer) 0 表示未删除任何键(因为该键不存在)。

  4. 删除多个键:

    DEL 命令也可用于一次删除多个键。让我们删除我们之前创建的 user:1001 键,并尝试在同一命令中再次删除 nonexistentkey

    DEL user:1001 nonexistentkey
    

    Redis 将响应:

    (integer) 1
    

    响应 (integer) 1 表示成功删除了一个键(user:1001),并且由于 nonexistentkey 不存在,因此删除 nonexistentkey 的尝试被忽略。

  5. 退出 Redis CLI:

    退出 Redis CLI:

    exit
    

设置键的过期时间

在本步骤中,我们将学习如何使用 EXPIRE 命令和带有 EX 参数的 SET 命令为 Redis 中的键设置过期时间。这对于在特定时间段后自动删除数据(例如会话数据或临时缓存)非常有用。

  1. 连接到 Redis:

    使用 redis-cli 命令连接到 Redis 服务器:

    redis-cli
    

    你应该看到 Redis 提示符:127.0.0.1:6379>

  2. 使用过期时间设置键值对 (方法 1: 使用 EX 参数的 SET 命令):

    Redis 允许你使用单个命令(EX 参数)设置键值对和过期时间。让我们将键 sessionkey 的值设置为 sessionvalue,并设置 15 秒的过期时间:

    SET sessionkey sessionvalue EX 15
    

    Redis 将响应:

    OK
    

    该命令在一个操作中设置键值对和过期时间,比使用单独的命令更有效率。

  3. 检查使用 EX 设置的键的 TTL:

    让我们检查 sessionkey 的剩余存活时间 (TTL):

    TTL sessionkey
    

    Redis 将响应剩余的过期时间(例如,(integer) 14)。该值会略小于 15,因为自设置键以来已过去的时间。

  4. 设置键值对 (方法 2: 使用单独的 EXPIRE 命令):

    或者,你可以先设置键值对,然后单独设置其过期时间。让我们将键 tempkey 的值设置为 tempvalue

    SET tempkey tempvalue
    

    Redis 将响应:

    OK
    
  5. 使用 EXPIRE 命令设置过期时间:

    现在,让我们使用 EXPIRE 命令为 tempkey 设置 10 秒的过期时间:

    EXPIRE tempkey 10
    

    Redis 将响应:

    (integer) 1
    

    响应 (integer) 1 表示成功设置了过期时间。

  6. 检查剩余存活时间 (TTL):

    要检查 tempkey 的剩余存活时间 (TTL),请使用 TTL 命令:

    TTL tempkey
    

    Redis 将响应剩余的过期时间(例如,(integer) 9)。该值可能略小于 10,因为自设置过期时间以来已过去的时间。如果键不存在或没有过期时间,TTL 分别返回 -2-1

  7. 退出 Redis CLI:

    退出 Redis CLI:

    exit
    

总结

在本实验中,你学习了使用 redis-cli 命令行界面进行 Redis 的基本键值操作。你学习了如何连接 Redis 服务器以及使用 SET 命令存储键值对数据。你还在实践中学习了如何使用 GET 命令检索值。此外,你学习了如何使用 EXISTS 命令检查键是否存在,使用 DEL 命令删除键,以及使用 SET 命令的 EX 参数和 EXPIRE 命令设置键的过期时间。使用 SET 命令的 EX 参数尤其有用,因为它允许你在一项高效的操作中设置具有过期时间的键值对。这些都是将 Redis 用作简单高效的数据存储的基础。