本章节介绍云数据库Redis企业版性能增强型实例中新增的String增强类命令,包括CAS和CAD。

使用前提

请注意,本章节介绍的命令只有在满足以下条件时才能生效。

  • Redis实例为云Redis企业版性能增强型实例。
  • 操作对象为性能增强型实例中的Redis String数据。
    说明 性能增强型实例中可同时设置Redis String(即Redis原生String)和TairString,CAS和CAD只能对Redis String使用。

命令列表

表 1. Sting增强命令
命令 语法 说明
CAS CAS <key> <oldvalue> <newvalue> 当oldvalue和key的value相等时,修改value的值为newvalue;不相等则无效。
说明 CAS仅适用于操作Redis String类型的数据,如需对TairString做相同的操作,请使用EXCAS。
CAD CAD <key> <value> 当oldvalue和key的value相等时,删除该key;不相等则无效。
说明 CAD仅适用于操作Redis String类型的数据,如需对TairString做相同的操作,请使用EXCAD。

CAS

  • 语法

    CAS <key> <oldvalue> <newvalue>

  • 时间复杂度

    O(1)

  • 命令描述

    CAS(Compare And Set),查看某个key的value是否等于一个指定的值,如果相等,则将value修改为一个新的值;不相等则不修改。

  • 参数及选项说明
    参数/选项 说明
    key String的key,用于指定作为命令调用对象的String。
    oldvalue 用于跟key的现有value比较的值。
    newvalue 当oldvalue和key的现有value相等时,将value修改为newvalue。
  • 返回值
    • 成功:1。
    • key不存在:-1。
    • 失败:0。
    • 其它情况返回异常。
  • 使用示例
    127.0.0.1:6379> SET foo bar
    OK
    127.0.0.1:6379> CAS foo baa bzz
    (integer) 0
    127.0.0.1:6379> GET foo
    "bar"
    127.0.0.1:6379> CAS foo bar bzz
    (integer) 1
    127.0.0.1:6379> GET foo
    "bzz"

CAD

  • 语法

    CAD <key> <value>

  • 时间复杂度

    O(1)

  • 命令描述

    CAD(Compare And Delete),查看某个key的value是否等于一个指定的值,如果相等,删除该key;不相等则不删除。

  • 参数及选项说明
    参数/选项 说明
    key String的key,用于指定作为命令调用对象的String。
    value 用于跟key的现有value比较的值。
  • 返回值
    • 成功:1。
    • key不存在:-1。
    • 失败:0。
    • 其它情况返回异常。
  • 使用示例
    127.0.0.1:6379> SET foo bar
    OK
    127.0.0.1:6379> CAD foo bzz
    (integer) 0
    127.0.0.1:6379> CAD not-exists xxx
    (integer) -1
    127.0.0.1:6379> CAD foo bar
    (integer) 1
    127.0.0.1:6379> GET foo
    (nil)