Redis命令操作之String

  1. SET
    用法:SET key value [EX seconds] [PX milliseconds] [NX|XX]
    功能:
        将字符串值 value 关联到 key 。
        如果 key 已经持有其他值, SET 就覆写旧值,无视类型。
        对于某个原本带有生存时间(TTL)的键来说, 当 SET 命令成功在这个键上执行时, 这个键原有的 TTL 将被清除。
        Redis 字符串的大小被限制在 512 兆(megabytes)以内。
    可选参数:
        从 Redis 2.6.12 版本开始, SET 命令的行为可以通过一系列参数来修改:
            EX second :设置键的过期时间为 second 秒。 SET key value EX second 效果等同于 SETEX key second value 。
            PX millisecond :设置键的过期时间为 millisecond 毫秒。 SET key value PX millisecond 效果等同于 PSETEX key millisecond value 。
            NX :只在键不存在时,才对键进行设置操作。 SET key value NX 效果等同于 SETNX key value 。
            XX :只在键已经存在时,才对键进行设置操作。
            备注:
                因为 SET 命令可以通过参数来实现和 SETNX 、 SETEX 和 PSETEX 三个命令的效果,所以将来的 Redis 版本可能会废弃并最终移除 SETNX 、 SETEX 和 PSETEX 这三个命令。
                命令 SET resource-name anystring NX EX max-lock-time 是一种在 Redis 中实现锁的简单方法。
    返回值:
        在 Redis 2.6.12 版本以前, SET 命令总是返回 OK 。
        从 Redis 2.6.12 版本开始, SET 在设置操作成功完成时,才返回 OK 。
        如果设置了 NX 或者 XX ,但因为条件没达到而造成设置操作未执行,那么命令返回空批量回复(NULL Bulk Reply)。
  2. SETEX
    用法:SETEX key seconds value
    可用版本:>=2.0.0
    功能:
        将值 value 关联到 key ,并将 key 的生存时间设为 seconds (以秒为单位)。
        如果 key 已经存在, SETEX 命令将覆写旧值。
        这个命令类似于以下两个命令:
            SET key value
            EXPIRE key seconds
            不同之处是, SETEX 是一个原子性(atomic)操作,关联值和设置生存时间两个动作会在同一时间内完成,该命令在 Redis 用作缓存时,非常实用。
    返回值:
        设置成功时返回 OK 。
        当 seconds 参数不合法时,返回一个错误。
  3. SETNX
    用法:SETNX key value
    可用版本:>=1.0.0
    功能:
        将 key 的值设为 value ,当且仅当 key 不存在。
        若给定的 key 已经存在,则 SETNX 不做任何动作。
        SETNX 是『SET if Not eXists』(如果不存在,则 SET)的简写。
    返回值:
        设置成功,返回 1 。
        设置失败,返回 0 。
  4. SETRANGE
    用法:SETRANGE key offset value
    可用版本:>= 2.2.0
    功能:
        用 value 参数覆写(overwrite)给定 key 所储存的字符串值,从偏移量 offset 开始。
        不存在的 key 当作空白字符串处理。
    返回值:
        被 SETRANGE 修改之后,字符串的长度。
  5. MSET
    用法:MSET key value [key value ...]
    可用版本:>=1.0.1
    功能:
        同时设置一个或多个 key-value 对。
        如果某个给定 key 已经存在,那么 MSET 会用新值覆盖原来的旧值,如果这不是你所希望的效果,请考虑使用 MSETNX 命令:它只会在所有给定 key 都不存在的情况下进行设置操作。
        MSET 是一个原子性(atomic)操作,所有给定 key 都会在同一时间内被设置,某些给定 key 被更新而另一些给定 key 没有改变的情况,不可能发生。
    返回值:
        总是返回 OK (因为 MSET 不可能失败)。
  6. MSETNX
    用法:MSETNX key value [key value ...]
    可用版本:>=1.0.1
    功能:
        同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。
        即使只有一个给定 key 已存在, MSETNX 也会拒绝执行所有给定 key 的设置操作。
        MSETNX 是原子性的,因此它可以用作设置多个不同 key 表示不同字段(field)的唯一性逻辑对象(unique logic object),所有字段要么全被设置,要么全不被设置。
    返回值:
        当所有 key 都成功设置,返回 1 。
        如果所有给定 key 都设置失败(至少有一个 key 已经存在),那么返回 0 。
  7. GET
    用法:GET key
    可用版本:>=1.0.0
    功能:
        返回 key 所关联的字符串值。
        如果 key 不存在那么返回特殊值 nil 。
        假如 key 储存的值不是字符串类型,返回一个错误,因为 GET 只能用于处理字符串值。
    返回值:
        当 key 不存在时,返回 nil ,否则,返回 key 的值。
        如果 key 不是字符串类型,那么返回一个错误。
  8. GETRANGE
    用法:GETRANGE key start end
    可用版本:>= 2.4.0
        在 <= 2.0 的版本里,GETRANGE 被叫作 SUBSTR。
    功能:
        返回 key 中字符串值的子字符串,字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内)。
        负数偏移量表示从字符串最后开始计数, -1 表示最后一个字符, -2 表示倒数第二个,以此类推。
    返回值:
        截取得出的子字符串。
    示例:
        redis> SET greeting "hello, my friend"
                   OK
        redis> GETRANGE greeting 0 4          # 返回索引0-4的字符,包括4。
                   "hello"
        redis> GETRANGE greeting -1 -5        # 不支持回绕操作
                   ""
        redis> GETRANGE greeting -3 -1        # 负数索引
                   "end"
        redis> GETRANGE greeting 0 -1         # 从第一个到最后一个
                   "hello, my friend"
        redis> GETRANGE greeting 0 1008611    # 值域范围不超过实际字符串,超过部分自动被符略
                   "hello, my friend"
  9. GETSET
    用法:GETSET key value
    可用版本:>=1.0.0
    功能:
        将给定 key 的值设为 value ,并返回 key 的旧值(old value)。
        当 key 存在但不是字符串类型时,返回一个错误。
    返回值:
        返回给定 key 的旧值。
        当 key 没有旧值时,也即是, key 不存在时,返回 nil 。
  10. MGET
    用法:MGET key [key ...]
    可用版本:>= 1.0.0
    功能:
        返回所有(一个或多个)给定 key 的值。
        如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 。因此,该命令永不失败。
    返回值:
        一个包含所有给定 key 的值的列表。
  11. APPEND
    用法:APPEND key value
    可用版本:>=2.0.0
    功能:
        如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。
        如果 key 不存在, APPEND 就简单地将给定 key 设为 value ,就像执行 SET key value 一样。
    返回值:追加 value 之后, key 中字符串的长度。
  12. STRLEN
    用法:STRLEN
    可用版本:>=2.2.0
    功能:
        返回 key 所储存的字符串值的长度。
        当 key 储存的不是字符串值时,返回一个错误。
    返回值:
        字符串值的长度。
        当 key 不存在时,返回 0 。
  13. INCR
    用法:INCR key
    可用版本:>=1.0.0
    功能:
        将 key 中储存的数字值增一。
        如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。
        如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
        这是一个针对字符串的操作,因为 Redis 没有专用的整数类型,所以 key 内储存的字符串被解释为十进制 64 位有符号整数来执行 INCR 操作。
    返回值:
        执行 INCR 命令之后 key 的值。
    扩展:
        可以通过组合使用 INCR 和 EXPIRE ,来达到只在规定的生存时间内进行计数(counting)的目的。
        客户端可以通过使用 GETSET 命令原子性地获取计数器的当前值并将计数器清零。
  14. INCRBY
    用法:INCRBY key increment
    可用版本:>=1.0.0
    功能:
        将 key 所储存的值加上增量 increment 。
        如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCRBY 命令。
        如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
    返回值:
        加上 increment 之后, key 的值。
  15. INCRBYFLOAT
    用法:INCRBYFLOAT key increment
    可用版本:>=2.6.0
    功能:
        为 key 中所储存的值加上浮点数增量 increment 。
        如果 key 不存在,那么 INCRBYFLOAT 会先将 key 的值设为 0 ,再执行加法操作。
        如果命令执行成功,那么 key 的值会被更新为(执行加法之后的)新值,并且新值会以字符串的形式返回给调用者。
        无论加法计算所得的浮点数的实际精度有多长, INCRBYFLOAT 的计算结果也最多只能表示小数点的后十七位。
    返回值:
        执行命令之后 key 的值。
  16. DECR
    用法:DECR key
    可用版本:>=1.0.0
    功能:
        将 key 中储存的数字值减一。
        如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR 操作。
        如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
    返回值:
        执行 DECR 命令之后 key 的值。
  17. DECRBY
    用法:DECRBY key increment
    可用版本:>=1.0.0
    功能:
        将 key 所储存的值减去减量 decrement 。
        如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECRBY 操作。
    返回值:
        减去 decrement 之后, key 的值。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值