• redis 中setex、setnx、set、getset 命令的区别与使用


    介绍几个常用的redis命令:

    SET 命令

    set key value

    设置指定 key 的值为 value。

    如果 key 已经存储其他值, SET 就覆写旧值,且无视类型。

    127.0.0.1:6379> set testSetKey aaa
    OK
    127.0.0.1:6379> get testSetKey
    "aaa"
    127.0.0.1:6379> set testSetKey bbb  # 会覆写旧值
    OK
    127.0.0.1:6379> get testSetKey
    "bbb"

    SETEX 命令

    setex key seconds value

    设置指定 key 的值为 value,并将 key 的过期时间设为 seconds (以秒为单位)。

    如果 key 已经存在, SETEX 命令将会替换旧的值。

    127.0.0.1:6379> setex testSetexKey 60 aaa   # 设置过期时间为60秒
    OK
    127.0.0.1:6379> get testSetexKey   # 有效期内获取
    "aaa"
    127.0.0.1:6379> get testSetexKey   # 时间过期后再次获取返回 nil
    (nil)
    127.0.0.1:6379> setex testSetexKey 60 aaa
    OK
    127.0.0.1:6379> get testSetexKey
    "aaa"
    127.0.0.1:6379> setex testSetexKey 60 bbb    # 替换旧值
    OK
    127.0.0.1:6379> get testSetexKey
    "bbb"

    SETNX 命令

    setnx key value

    设置指定 key 的值为 value,只有在 key 不存在时设置 key 的值。

    setnx(SET if Not eXists) 命令在指定的 key 不存在时,为 key 设置指定的值。

    设置成功,返回 1 。 设置失败,返回 0 。

    127.0.0.1:6379> setnx testSetnxKey aaa
    (integer) 1
    127.0.0.1:6379> get testSetnxKey
    "aaa"
    127.0.0.1:6379> setnx testSetnxKey bbb  # 当key值存在时,返回0
    (integer) 0
    127.0.0.1:6379> get testSetnxKey
    "aaa"

    GETSET 命令

    getset key value

    设置指定 key 的值为 value,并返回 key 的旧值(old value)。

    返回给定 key 的旧值。 当 key 没有旧值时,即 key 不存在时,返回 nil 。

    当 key 存在但不是字符串类型时,返回一个错误。

    127.0.0.1:6379> getset testGetsetKey aaa  # 没有旧值时,返回 nil
    (nil)
    127.0.0.1:6379> get testGetsetKey
    "aaa"
    127.0.0.1:6379> getset testGetsetKey bbb  # 返回旧值
    "aaa"
    127.0.0.1:6379> get testGetsetKey
    "bbb"
  • 相关阅读:
    raspberry pi (树莓PI)使用socket向PC发送视频流
    树莓PI交叉编译BOOST库(asio网络例子)
    远程调试树莓PI
    opencv车速检测
    屏蔽同步(JAVA)
    linux常用命令记录
    虚拟机中Ubuntu设置固定IP方法
    java笔记01-反射
    java笔记00-目录
    mysql由于外键关联无法删除数据
  • 原文地址:https://www.cnblogs.com/woods1815/p/13287724.html
Copyright © 2020-2023  润新知