云数据库Redis性能增强型实例集成了Tair的部分特性,除了支持云Redis社区版命令,性能增强型实例还支持部分新的命令。

新增命令类型

下表介绍了性能增强型实例相比原生Redis新增的各类命令,单击类型列的链接可以跳转到对应的命令详解文档,单击命令列表列的链接可以在本章节查看对应类型的命令列表。

表 1. 新增命令类型及说明
类型 命令列表 说明
String增强命令 参见表 2 为了增强Redis String的功能而开发的命令,可以先确认value等于特定值,再替换或删除该value。
TairString命令 参见表 3 性能增强型实例集成Tair后新增了TairString类型的数据结构,同时也支持了相关命令。
TairGIS命令 参见表 4 性能增强型实例集成Tair后新增了TairGIS类型的数据结构,同时也支持了相关命令。
TairBloom命令 参见表 5 性能增强型实例集成Tair后新增了TairBloom类型的数据结构,同时也支持了相关命令。
TairDoc命令 参见表 6 性能增强型实例集成Tair后新增了TairDoc类型的数据结构,同时也支持了相关命令。

新增命令列表

下方各表列出了云Redis企业版性能增强实例相比原生Redis新增的所有命令,如需了解命令的详细用法,请单击表 1中的类型,跳转到相应的说明文档。

表 2. Sting增强命令
命令 语法 说明
CAS CAS <key> <oldvalue> <newvalue> 当oldvalue和key的value相等时,修改value的值为newvalue;不相等则无效。
说明 CAS仅适用于操作Redis String类型的数据,如需对TairString做相同的操作,请使用EXCAS。
CAD CAD <key> <value> 当oldvalue和key的value相等时,删除该key;不相等则无效。
说明 CAS仅适用于操作Redis String类型的数据,如需对TairString做相同的操作,请使用EXCAD。
表 3. TairString命令
命令 语法 简介
EXSET EXSET <key> <value> [EX time] [PX time] [EXAT time] [PXAT time] [NX | XX] [VER version | ABS version] 将value保存到key中。
EXGET EXGET <key> 返回TairString的value和version。
EXSETVER EXSETVER <key> <version> 直接对一个key设置version。
EXINCRBY EXINCRBY <key> <num> [EX time] [PX time] [EXAT time] [EXAT time] [PXAT time] [NX | XX] [VER version | ABS version] [MIN minval] [MAX maxval] 对Key做自增自减操作,num的范围为long。
EXINCRBYFLOAT EXINCRBYFLOAT <key> <num> [EX time] [PX time] [EXAT time] [EXAT time] [PXAT time] [NX | XX] [VER version | ABS version] [MIN minval] [MAX maxval] 对Key做自增自减操作,num的范围为double。
EXCAS EXCAS <key> <newvalue> <version> 指定version将value更新,当引擎中的version和指定的相同时才更新成功,不成功会返回旧的value和version。
EXCAD EXCAD <key> <version> 当指定version和引擎中version相等时候删除Key,否则失败。
表 4. TairGIS命令
类型 命令列表 说明
GIS.ADD GIS.ADD <area> <PolygonName> <POLYGON> [<PolygonName2> <POLYGON> ...] 在area中添加一个名为PolygonName的多边形,使用WKT(Well-known text)描述。可同时添加多个多边形。
说明 WKT是一种文本标记语言,用于描述矢量几何对象、空间参照系统及空间参照系统之间的转换。
GIS.GET GIS.GET <area> <PolygonName> 在area中查找名为PolygonName的多边形的WKT信息。
GIS.DEL GIS.DEL <area> <PolygonName> 删除area下的名为PolygonName的多边形。
GIS.SEARCH GIS.SEARCH <area> <POINT | LINESTRING | POLYGON> 查找一个点/线/面所在的多边形,返回多边形的名称和WKT信息。
GIS.CONTAINS GIS.CONTAINS <area> <POINT | LINESTRING | POLYGON> 判断指定的点/线/面是否包含在area中的某个多边形内。
GIS.INTERSECTS GIS.INTERSECTS <area> <POINT | LINESTRING | POLYGON> 判断给定点/线/面和area中包含的多边形的相交情况。
表 5. TairBloom命令
类型 命令列表 说明
BF.RESERVE BF.RESERVE <key> <error_rate> <capacity> 创建一个大小为capacity,错误率为error_rate的空的TairBloom。
BF.ADD BF.ADD <key> <item> 在key指定的TairBloom中添加一个元素item。
BF.MADD BF.ADD <key> <item> [item...] 在key指定的TairBloom中一次性添加多个元素。
BF.EXISTS BF.EXISTS <key> <item> 检查一个元素是否存在于key指定的TairBloom中。
BF.MEXISTS BF.EXISTS <key> <item> [item...] 同时检查多个元素是否存在于key指定的TairBloom中。
BF.INSERT BF.INSERT <key> [CAPACITY cap] [ERROR error] [NOCREATE] ITEMS <item...> 在key指定的TairBloom中一次性添加多个元素,添加时可以指定大小和错误率,且可以控制在TairBloom不存在的时候是否自动创建。
BF.DEBUG BF.DEBUG <key> 可以查看key指定的TairBloom内部信息,如当前层数和每一层的元素个数、错误率等。
表 6. TairDoc命令
类型 命令列表 说明
JSON.SET JSON.SET <key> <path> <json> [NX or XX] 存储json的值在key的path中。对于不存在的key,path必须是root。对于已经存在的key,当path存在时,替换掉目前的json值。
JSON.GET JSON.GET <key> [PATH] 获取一个TairDoc在path中存储的JSON数据。
JSON.DEL JSON.DEL <key> [path] 删除path对应的JSON数据。如果未指定path,则删除key。不存在的key和不存在的path将会被忽略。
JSON.TYPE JSON.TYPE <key> [path] 获取path对应的值的类型。
JSON.NUMINCRBY JSON.NUMINCRBY <key> [path] <value> 将path对应的值增加value。path必须存在且path对应的值和value必须是都是int或double类型的值。
JSON.STRAPPEND JSON.STRAPPEND <key> [path] <json-string> 将json-string中的字符串添加到path对应的字符串类型的值中。如果未设置path,默认为root。
JSON.STRLEN JSON.STRLEN <key> [path] 获取path对应值的长度。如果未设置path,默认为root。
JSON.ARRAPPEND JSON.ARRAPPEND <key> <path> <json> [<json> ...] 将json插入到path对应的array最后,json可以是多个。
JSON.ARRPOP JSON.ARRPOP <key> <path> [index] 移除并返回path对应的数组中index位置的元素。
JSON.ARRINSERT JSON.ARRINSERT <key> <path> <index> <json> [<json> ...] 将json插入到path对应的的数组中,原有元素会往后移动。
JSON.ARRLEN JSON.ARRLEN <key> [path] 获取path对应数组的长度。
JSON.ARRTRIM JSON.ARRTRIM <key> <path> <start> <stop> 按照start和stop指定的范围修剪数组。

其它命令

除了本章节介绍的新命令以外,云Redis企业版性能增强型实例与社区版同架构实例有着相同的命令支持性。您可以通过命令查询导航找到各引擎版本和各种架构的Redis实例的命令支持信息。