本文介绍Tair实例新增的String增强类命令,包括CAS和CAD。

前提条件

实例为Tair内存型持久内存型(小版本为1.2.3及以上)。

说明 最新小版本将提供更丰富的功能与稳定的服务,建议将实例的小版本升级到最新,具体操作请参见升级小版本。如果您的实例为集群架构读写分离架构,请将代理节点的小版本也升级到最新,否则可能出现命令无法识别的情况。

注意事项

本文的操作对象为Redis String(即Redis原生String)。
说明 Tair实例中可同时设置Redis String和TairString,本文的命令无法对TairString使用。

命令列表

表 1. String增强命令
命令语法说明
CASCAS key oldvalue newvalue
CAS(Compare And Set),查看目标key的value是否等于一个指定的值,如果相等,则将value修改为一个新的值;不相等则不修改。
说明 该命令仅适用于操作Redis String类型的数据,如需对TairString做相同的操作,请使用EXCAS。
CADCAD key value
CAD(Compare And Delete),查看目标key的value是否等于指定的value值,如果相等,删除该key;不相等则不删除。
说明 该命令仅适用于操作Redis String类型的数据,如需对TairString做相同的操作,请使用EXCAD。
说明 本文的命令语法定义如下:
  • 大写关键字:命令关键字。
  • 斜体:变量。
  • [options]:可选参数,不在括号中的参数为必选。
  • A|B:该组参数互斥,请进行二选一或多选一。
  • ...:前面的内容可重复。

CAS

类别说明
语法CAS key oldvalue newvalue
时间复杂度 O(1)
命令描述
CAS(Compare And Set),查看目标key的value是否等于一个指定的值,如果相等,则将value修改为一个新的值;不相等则不修改。
说明 该命令仅适用于操作Redis String类型的数据,如需对TairString做相同的操作,请使用EXCAS。
选项
  • Key:String的key,用于指定作为命令调用对象的String。
  • oldvalue:用于跟key现有的value比较的值。
  • newvalue:当oldvalue与key现有value相等时,将value修改为newvalue。
返回值
  • 执行成功:1
  • 执行失败:0
  • 若Key不存在:-1
  • 其它情况返回相应的异常信息。
示例

提前执行SET foo bar命令。

命令示例:

CAS foo bar bzz

返回示例:

(integer) 1

若此时执行GET foo,将返回“bzz”

CAD

类别说明
语法CAD key value
时间复杂度O(1)
命令描述
CAD(Compare And Delete),查看目标key的value是否等于指定的value值,如果相等,删除该key;不相等则不删除。
说明 该命令仅适用于操作Redis String类型的数据,如需对TairString做相同的操作,请使用EXCAD。
选项
  • Key:String的key,用于指定作为命令调用对象的String。
  • value:用于跟key现有的value比较的值。
返回值
  • 执行成功:1
  • 执行失败:0
  • 若Key不存在:-1
  • 其它情况返回相应的异常信息。
示例

提前执行SET foo bar命令。

命令示例:

CAD foo bar

返回示例:

(integer) 1

执行成功,则foo key被删除,若此时执行GET foo,将返回(nil)