Redis基本类型学习之String

Redis基本类型学习之String
最新回答
封锁那段记忆

2026-10-24 07:42:50

Redis String类型学习

Redis的基本数据类型中,String是基础且易于掌握的类型。String不仅可以存储传统的字符串如“hello world”,还可以存储JSON、HTML等复杂数据。接下来,我们将学习有关Redis String类型的关键命令。

SET命令

时间复杂度:O(1)

功能:设置key-value映射。如果key已存在,将覆盖旧值;若key不存在,则创建新映射。无过期时间默认为永不过期。

示例:将key“name”设置为value“John”

SETNX命令

时间复杂度:O(1)

功能:当key不存在时才保存新值,类似于带有NX参数的SET命令。

示例:当key“age”不存在时,将值“25”存储到“age”中

SETEX命令

时间复杂度:O(1)

功能:设置key-value,并添加过期时间。相当于带有EX参数的SET命令。

示例:设置key“exp”对应的值为“3年”,并使其在30天后过期

PSETEX命令

时间复杂度:O(1)

功能:与SETEX类似,设置过期时间,但单位为毫秒。

示例:设置key“score”对应的值为“85”,并使其在10000毫秒后过期

GET命令

时间复杂度:O(1)

功能:返回key对应的value。若key不存在,则返回空值。

示例:获取key“name”的值

GETSET命令

时间复杂度:O(1)

功能:设置key-value,并返回旧值。若旧值不存在,返回nil;若旧值非字符串,则报错。

示例:获取并设置key“score”为新值“95”,返回旧值

GETDEL命令

时间复杂度:O(1)

功能:获取key对应的value,然后删除key。若key不存在,则返回空值。

示例:获取并删除key“name”的值

GETEX命令

时间复杂度:O(1)

功能:获取key对应的value,并设置过期时间。与SETEX命令类似,但使用GETEX命令时过期时间参数与set命令一致。

示例:获取并设置key“exp”的值为“3年”,并使它过期

STRLEN命令

时间复杂度:O(1)

功能:返回key对应value的字符串长度。若key不存在或value非字符串,则报错。

示例:获取key“name”的字符串长度

APPEND命令

时间复杂度:O(1)

功能:在key对应的字符串值后追加数据。若key不存在,则视为空字符串。

示例:在key“bio”的值后追加“,资深开发者”

SETRANGE命令

时间复杂度:O(1)

功能:从指定偏移量开始修改key对应的value值。value长度不足时用空白字符补充。若key不存在,以空白字符串处理。

示例:修改key“title”的值从第3个字符开始,将其从“Developer”变更为“Software Engineer”

GETRANGE命令

时间复杂度:O(N)

功能:获取key对应value的子串,由start和end参数决定。负数表示从末尾开始计数。

示例:从key“bio”的值中获取从第4个字符到第10个字符的子串

INCR命令

时间复杂度:O(1)

功能:将key对应的value值加1。若key不存在,则初始化为0。

示例:将key“count”的值加1

INCRBY命令

时间复杂度:O(1)

功能:将key对应的value值加上一个整数。若key不存在,则初始化为0。

示例:将key“score”的值加3

INCRBYFLOAT命令

时间复杂度:O(1)

功能:将key对应的value值加上一个浮点数。若key不存在,则初始化为0。最多保留17位小数。

示例:将key“rating”的值增加0.5

DECR命令

时间复杂度:O(1)

功能:将key对应的value值减1。若key不存在,则初始化为0。

示例:将key“age”的值减1

DECRBY命令

时间复杂度:O(1)

功能:将key对应的value值减去一个整数。若key不存在,则初始化为0。

示例:将key“points”的值减5

MSET命令

时间复杂度:O(N)

功能:一次性设置多个key-value。若key已存在,将覆盖旧值。MSET是一个原子操作。

示例:同时设置多个key的值

MSETNX命令

时间复杂度:O(N)

功能:当所有给定的key都不存在时,才执行设置操作。类似于带有NX参数的MSET命令。

示例:当所有指定的key不存在时,执行设置操作

MGET命令

时间复杂度:O(N)

功能:一次获取多个key的值。若key不存在,则返回nil。

示例:获取多个key的值