• 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"
  • 相关阅读:
    HTTPS, SPDY和 HTTP/2性能的简单对比
    mysql去除字段内容的空格和换行回车
    jquery获取选中select的文本,值等
    jquery 选择器
    php获取调用本方法的上个方法,php堆栈,函数入库
    php 过滤js字符串代码
    php 获取根目录
    php生成唯一字符串
    php javascript的ajax
    php 上传文件大小控制配置文件中设置的
  • 原文地址:https://www.cnblogs.com/woods1815/p/13287724.html
Copyright © 2020-2023  润新知