Redis:字符串SET、SETNX、SETEX、PSETEX、GET、GETSET命令介绍

SET

SET key value [EX seconds] [PX milliseconds] [NX|XX]
可用版本: >= 1.0.0
时间复杂度: O(1)

将字符串值value关联到 key

如果key已经持有其他值, SET会覆盖掉旧值。当SET命令对一个带有生存时间(TTL)的键进行设置之后, 该键原有的 TTL 将被清除。这些在演示中会进行说明。

可选参数

Redis 2.6.12版本开始, SET命令的行为可以通过一系列参数来修改:

  • EX seconds : 将键的过期时间设置为 seconds 秒。
  • PX milliseconds : 将键的过期时间设置为 milliseconds 毫秒。
  • NX : 只在键不存在时, 才对键进行设置操作。 执行 SET key value NX 的效果等同于执行 SETNX key value
  • XX : 只在键已经存在时, 才对键进行设置操作。

演示

对不存在的键进行设置:

在这里插入图片描述
返回OK

对存在的键进行设置:
在这里插入图片描述
如果key已经持有其他值, SET会覆盖掉旧值。

EX选项:
在这里插入图片描述
PX选项:
在这里插入图片描述
NX选项:
在这里插入图片描述
只在键不存在时, 才对键进行设置操作(返回OK),否则返回(nil)

XX选项:

在这里插入图片描述
只在键已经存在时, 才对键进行设置操作(返回OK),否则返回(nil)。并且当SET命令对一个带有生存时间(TTL)的键进行设置之后, 该键原有的 TTL 将被清除。

TTL命令:当key不存在时,返回 -2 。 当 key 存在但没有设置生存时间时,返回 -1 。 否则,以秒为单位,返回 key 的剩余生存时间。

注意:在 Redis2.8以前,当 key 不存在,或者 key 没有设置生存时间时,命令都返回 -1

SETNX

SETNX key value
可用版本: >= 1.0.0
时间复杂度: O(1)

只在键 key 不存在的情况下, 将键 key 的值设置为 value
若键 key 已经存在, 则SETNX命令不做任何动作。

返回值

命令在设置成功时返回 1 , 设置失败时返回 0

演示

在这里插入图片描述

SETEX

SETEX key seconds value
可用版本: >= 2.0.0
时间复杂度: O(1)

将键 key 的值设置为 value , 并将键 key 的生存时间设置为 seconds 秒钟。

如果键 key 已经存在, 那么SETEX 命令将覆盖已有的值。

SETEX 是一个原子(atomic)操作, 它可以在同一时间内完成设置值和设置生存时间这两个操作。

演示

如果键 key 已经存在, 那么SETEX 命令将覆盖已有的值。

如果之前没有设置生存时间:
在这里插入图片描述
如果之前有设置生存时间:
在这里插入图片描述
当键 key 不存在的情况下:
在这里插入图片描述

PSETEX

PSETEX key milliseconds value
可用版本: >= 2.6.0
时间复杂度: O(1)

这个命令和SETEX命令相似, 但它以毫秒为单位设置key的生存时间, 而不是像SETEX命令那样以秒为单位进行设置。

演示

和SETEX命令相似。
在这里插入图片描述

GET

GET key
可用版本: >= 1.0.0
时间复杂度: O(1)

返回与键 key 相关联的字符串值。

演示

当键 key 不存在时, 返回特殊值(nil) ; 否则, 返回键 key 的值。

在这里插入图片描述
如果键 key 的值并非字符串类型, 那么返回一个错误, 因为GET命令只能用于字符串值。
在这里插入图片描述

GETSET

GETSET key value
可用版本: >= 1.0.0
时间复杂度: O(1)

将键 key 的值设为 value , 并返回键 key 在被设置之前的旧值。

演示

返回给定键 key 的旧值。
在这里插入图片描述
如果键 key 没有旧值, 那么命令返回 (nil)
在这里插入图片描述
和GET命令一样,当键 key 存在但不是字符串类型时,GETSET命令会返回一个错误。
在这里插入图片描述
Redis中字符串SET、SETNX、SETEX、PSETEX、GET、GETSET命令就介绍到这里。

写博客是博主记录自己的学习过程,如果有错误,请指正,谢谢!

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ITKaven

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值