暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Redis源码】setnx、setex、psetex命令

菜鸟江湖游记 2021-06-21
1580

在读本文之前,建议阅读文章:Redis Set命令详解.

在了解了set的原理之后,setnx、setex、psetex命令的原理我们也应该大致了解了,这3个命令也是先调用了tryObjectEncoding将值优化,再调用setGenericCommand将key-value设置到数据库,只不过这3个命令不需要解析额外参数。

setnx命令

格式:

    setnx key value
    • 说明:将key-value设置到数据库,当且仅当key不存在时。

    • 源码分析:在调用setGenericCommand时,将flags赋值为OBJ_SET_NX,表示只有key不存在时才可以执行函数。

    setex命令

    格式:

      setex key seconds value
      • 说明:将key-value设置到数据库,并且指定key的超时秒数。

      • 源码分析:在调用setGenericCommand时,将flags赋值为OBJ_SET_NO_FLAGS,expire赋值为UNIT_SECONDS,表示不需要考虑数据库中是否存在key,且时间单位为秒。

      psetex命令

      格式:

        psetex key milliseconds value
        • 说明:将key-value设置到数据库,并且指定key的超时毫秒数。

        • 源码分析:在调用setGenericCommand时,将flags赋值为OBJ_SET_NO_FLAGS,expire赋值为UNIT_MILLISECONDS
          ,表示不需要考虑数据库中是否存在key,且时间单位为毫秒。



        标 题:《【Redis源码】setnx、setex、psetex命令》
        作 者:zeekling
        提 示:转载请注明文章转载自个人博客:小令童鞋


        文章转载自菜鸟江湖游记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论