全部产品
Search
文档中心

:Redis String命令增强

更新时间:Aug 19, 2024

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

前提条件

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

说明

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

注意事项

本文的操作对象为Redis String(即Redis原生String)。

说明

Tair实例中可同时设置Redis String和TairString,本文的命令无法对TairString使用。

命令列表

表 1. String增强命令

命令

语法

说明

CAS

CAS key oldvalue newvalue

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

说明

该命令仅适用于操作Redis String类型的数据,如需对TairString做相同的操作,请使用EXCAS。

CAD

CAD 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)