redis区分大小写吗_Redis 字符串

字符串操作相关命令

Redis 的命令及其选项时不区分大小写的(键以及值是区分大小写的),本文中采用 [] 表示可选项,命令中的关键字使用大写,参数值使用小写以便区分

常用命令

设置值

SET

自1.0.0起可用。

时间复杂度: O(1)

语法:SET key value [EX seconds] [PX milliseconds] [NX|XX]

返回值:成功返回 OK 失败返回 nil

示例:

coderknock> SET testStringSet HelloWorld

OK

coderknock> GET testStringSet

"HelloWorld"

如果参数错误会抛出异常

说明:

该命令中的可选项解释如下:

EX seconds :为该键设置秒级过期时间。EX 为 "expire " 的缩写

PX milliseconds :为该键设置毫秒级过期时间

NX :键必须不存在,才可以设置成功,用于添加。NX 为 "Not eXists"的缩写

XX :与XX相反,键必须存在,才可以设置成功,用于更新

EX 以及 PX 选项比较好理解,下面只提供 NX 和 XX 的示例,请先查看命令然后根据上面的说明进行分析之后再查看下文的分析:

coderknock> SET testStringSet coderknock NX

(nil)

coderknock> GET testStringSet

"HelloWorld"

coderknock> SET testStringSetNX coderknock NX

OK

coderknock> GET testStringSetNX

"coderknock"

coderknock> SET testStringSetNX sanchan XX

OK

coderknock> SET testStringSetXX coderknock XX

(nil)

coderknock> GET testStringSetXX

(nil)

coderknock> GET testStringSetNX

"sanchan"

coderknock>

上面的示例中我们对之前设置的 testStringSet 再次进行设置并使用 NX 选项,发现返回值非 之前示例中的 OK 而变成了 nil (代表 SET 操作失败),查看 testStringSet 发现确实未更改,之后 SET 一个没有的 key 并且使用 NX 可以正常 SET。当我们使用 XX 选项添加一个新的 key时发现添加失败,修改已有的 key 成功。

Redis 还提供了 SETNX和 SETEX、PSETEX 三个个命令,相当于 SET 命令使用 NX 选项、 EX选项、PX选项时的情形。由于其特性,SETNX可以用作分布式锁的实现 https://redis.io/topics/distlock 官方给出了相关方法,但是这三个指令之后的版本可能会删除。

SETNX

SETNX 是 "SET if Not eXists" 的简写,

语法: SETNX key value

返回值:当设置成功时 返回 1 反之返回 0。【注意可选项与 SET 有区别,返回值也有区别】

示例:

coderknock> SETNX testSETNX SETNX

(integer) 1

coderknock> SETNX testSETNX a

(integer) 0

coderknock> GET testSETNX

"SETNX"

coderknock> SETNX testSETNXEX test 1

(error) ERR wrong number of arguments for 'setnx' command

如果参数错误会抛出异常,例如上面示例的最后一行多了一个 1 的参数

SETEX

自2.0.0起可用。

时间复杂度: O(1

你可能感兴趣的:(redis区分大小写吗)