使用 Redis 字符串:SET、GET、DEL
Redis 字符串是用于存储和操作文本或二进制数据的基本数据类型。它们是 Redis 中最简单但功能最丰富的数据结构,可作为构建更复杂结构的基石。了解如何有效地使用字符串对于充分利用 Redis 的缓存、会话管理以及其他各种应用功能至关重要。本课将介绍使用 Redis 字符串的核心命令: SET 、 GET 和 DEL 。
理解 Redis 字符串
Redis 字符串是字节序列。虽然它们通常用于存储文本,但它们也可以存储序列化的对象、图像或任何其他二进制数据。Redis 字符串的最大大小为 512 MB。
关键概念
- 键值对: Redis 将数据存储为键值对。键是字符串的唯一标识符,值是实际的字符串数据。
- 二进制安全: Redis 字符串是“二进制安全的”,这意味着它们可以存储任何字节序列而无需特殊解释。这对于处理各种数据格式至关重要。
- 原子操作: Redis 中的许多字符串操作都是原子的,确保操作作为单个不可分割的单元执行。这对于在并发环境中维护数据一致性至关重要。
数据类型
尽管 Redis 将它们称为“字符串”,但它们可以表示不同的数据类型:
- 字符串: 纯文本字符串,例如
"hello"或"Redis is fast"。 - 整数: 包含可使用原子操作增加或减少的数值的字符串。
- 浮点数: 虽然 Redis 没有原生浮点类型,但您可以将浮点数存储为字符串。
- 二进制数据: 图像、序列化对象或任何其他二进制数据。
SET 命令
SET 命令用于为键赋值。如果键已存在,则其值会被覆盖。
基本语法
SET key value [expiration] [NX|XX] [GET]
key:要设置的键。value:分配给键的值。expiration:(可选)指定密钥的到期时间。NX|XX:(可选)条件设置:NX:仅当密钥不存在时才设置它。XX:仅当密钥已存在时才设置该密钥。
GET:(可选)返回存储在键的旧字符串,当键不存在时返回 nil。
示例
-
设置一个简单的字符串:
SET mykey "Hello Redis"此命令将键
mykey设置为值"Hello Redis"。 -
设置密钥的过期时间(以秒为单位):
SET anotherkey "This will expire" EX 10此命令将键
anotherkey值设置为"This will expire",并设置其在 10 秒后过期。10 秒后,Redis 将自动删除该键。 -
设置具有过期时间的密钥(以毫秒为单位):
SET yetanotherkey "Expires quickly" PX 5000此命令将键
yetanotherkey设置为值"Expires quickly",并将其设置为在 5000 毫秒(5 秒)后过期。 -
仅当密钥不存在时才设置密钥(
NX):SET newkey "Only if it's new" NX如果
newkey不存在,则会将其设置为"Only if it's new"。如果newkey已经存在,则该命令将不执行任何操作并返回nil。 -
仅当密钥已存在时才设置密钥(
XX):SET existingkey "Only if it exists" XX如果
existingkey存在,则会将其设置为"Only if it exists"。如果existingkey不存在,则该命令将不执行任何操作并返回nil。 -
设置键并返回旧值(
GET):SET mykey "New Value" GET如果
mykey存在,则将其设置为"New Value",并返回旧值。如果mykey不存在,则将其设置为"New Value",并返回nil。
实际考虑
- 覆盖: 请注意,
SET会覆盖现有值。如果需要条件设置,请使用NX或XX。 - 过期: 使用过期时间自动删除陈旧数据,这对于缓存特别有用。
- 原子性:
SET是一种原子操作,因此可以在并发环境中安全使用。
GET 命令
GET 命令用于检索键的值。
基本语法
GET key
key:要检索的密钥。
示例
-
获取现有键的值:
SET mykey "Hello Redis" GET mykey这将返回
"Hello Redis"。 -
获取不存在的键的值:
GET nonexistingkey这将返回
nil。
实际考虑
- 错误处理: 使用
GET时始终检查是否为nil,因为它表示键不存在。 - 数据类型:
GET始终返回字符串。如果您将整数或其他数据类型存储为字符串,则可能需要在检索后进行转换。
DEL 命令
DEL 命令用于删除一个或多个键。
基本语法
DEL key [key ...]
key:要删除的键。您可以一次指定多个要删除的键。
示例
-
删除单个键:
SET mykey "Hello Redis" DEL mykey GET mykey执行这些命令后,
GET mykey将返回nil。 -
删除多个键:
SET key1 "Value 1" SET key2 "Value 2" SET key3 "Value 3" DEL key1 key2 key3此命令删除
key1、key2和key3。
实际考虑
- 返回值:
DEL返回成功删除的键的数量。 - 不存在的键: 如果您尝试删除一个不存在的键,
DEL会忽略它,不会引发错误。返回值仍然会反映实际删除的键的数量。 - 原子性:
DEL是一个原子操作。

















