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

Redis:字符串SET、SETNX、SETEX、PSETEX、GET、GETSET命令介绍Redis 学习 二 字符串 SET SETNX SETEX PSETEX GET GETSET 命令介绍 SETSETkeyval EXseconds PXmillisecon NX X

大家好,欢迎来到IT知识分享网。

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

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 命令将覆盖已有的值。

PSETEX

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

这个命令和SETEX命令相似, 但它以毫秒为单位设置key的生存时间, 而不是像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命令就介绍到这里。





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

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/121140.html

(0)
上一篇 2025-10-25 13:26
下一篇 2025-10-25 13:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信