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

新增命令类型

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

表 1. 新增命令类型及说明
类型 命令列表 说明
String增强命令 参见表 2 为了增强Redis String的功能而开发的命令,可以先确认value等于特定值,再替换或删除该value。
TairString命令 参见表 3 性能增强型实例集成Tair后新增了TairString类型的数据结构,同时也支持了相关命令。
TairHash命令 参见表 4 性能增强型实例集成Tair后新增了TairHash类型的数据结构,同时也支持了相关命令。
TairGIS命令 参见表 5 性能增强型实例集成Tair后新增了TairGIS类型的数据结构,同时也支持了相关命令。
TairBloom命令 参见表 6 性能增强型实例集成Tair后新增了TairBloom类型的数据结构,同时也支持了相关命令。
TairDoc命令 参见表 7 性能增强型实例集成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;不相等则无效。
说明 CAD仅适用于操作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. TairHash命令
命令 语法 说明
EXHSET EXHSET <key> <field> <value> [EX time] [EXAT time] [PX time] [PXAT time] [NX/XX] [VER/ABS version] 向key指定的TairHash中插入一个field,如果TairHash不存在则自动创建一个,如果field已经存在则覆盖其值。
EXHSETNX EXHSETNX <key> <field> <value> 向key指定的TairHash中插入一个field,前提是这个field必须不存在,否则插入失败。
EXHMSET EXHMSET <key> <field> <value> [field value...] 同时向key指定的TairHash中插入多个field,如果TairHash不存在则自动创建一个,如果field已经存在则覆盖其值。该命令会触发对field的被动淘汰。
EXHMSETWITHOPTS EXHMSETWITHOPTS exhashkey field1 val1 ver1 expire1 [field2 val2 ver2 expire2 ...] 该命令会触发对field的被动淘汰。
EXHPEXPIREAT EXHPEXPIREAT <key> <field> <milliseconds-timestamp> 在key指定的TairHash中为一个field设置绝对过期时间,单位为毫秒。该命令会触发对field的被动淘汰。
EXHPEXPIRE EXHPEXPIRE <key> <field> <milliseconds> 在key指定的TairHash中为一个field设置相对过期时间,单位为毫秒。该命令会触发对field的被动淘汰。
EXHEXPIREAT EXHEXPIREAT <key> <field> <timestamp> 在key指定的TairHash中为一个field设置绝对过期时间,单位为秒。该命令会触发对field的被动淘汰。
EXHEXPIRE EXHEXPIRE <key> <field> <seconds> 在key指定的TairHash中为一个field设置相对过期时间,单位为秒。该命令会触发对field的被动淘汰。
EXHPTTL EXHPTTL <key> <field> 查看key指定的TairHash中一个field的剩余超时时间,单位为毫秒。该命令会触发对field的被动淘汰。
EXHTTL EXHTTL <key> <field> 查看key指定的TairHash中一个field的剩余超时时间,单位为秒。该命令会触发对field的被动淘汰。
EXHVER EXHVER <key> <field> 查看key指定的TairHash中一个field的当前版本号。该命令会触发对field的被动淘汰。该命令会触发对field的被动淘汰。
EXHSETVER EXHSETVER <key> <field> <version> 为key指定的TairHash中的一个field设置版本号。该命令会触发对field的被动淘汰。
EXHINCRBY EXHINCRBY <key> <field> <value> [EX time] [EXAT time] [PX time] [PXAT time] 将key指定的TairHash中一个field的值加上整型value。如果TairHash不存在则自动新创建一个,如果指定的field不存在,则在加之前先将field的值设置为0。同时还可以使用EX/EXAT/PX/PXAT为field设置超时时间。该命令会触发对field的被动淘汰。
EXHINCRBYFLOAT EXHINCRBYFLOAT <key> <field> <value> [EX time] [EXAT time] [PX time] [PXAT time] 将key指定的TairHash中一个field的值加上浮点型value。如果TairHash不存在则自动新创建一个,如果指定的field不存在,则在加之前先将field的值设置为0。同时还可以使用EX/EXAT/PX/PXAT为field设置超时时间。该命令会触发对field的被动淘汰。
EXHGET EXHGET <key> <field> 获取key指定的TairHash中一个field的值,如果TairHash不存在或者field不存在,则返回nil。该命令会触发对field的被动淘汰。
EXHGETWITHVER EXHGETWITHVER <key> <field> 同时获取key指定的TairHash中一个field的值和版本,如果TairHash不存在或者field不存在,则返回nil。该命令会触发对field的被动淘汰。
EXHMGET EXHMGET <key> <field> [field ...] 同时获取key指定的TairHash中多个field的值,如果TairHash不存在或者field不存在,则返回nil。该命令会触发对field的被动淘汰。
EXHMGETWITHVER EXHMGETWITHVER <key> <field> [field ...] 同时获取key指定的TairHash中多个field的值和版本,如果TairHash不存在或者field不存在,则返回nil。该命令会触发对field的被动淘汰。
EXHDEL EXHDEL <key> <field> <field> <field> ... 删除key指定的TairHash中的一个field,如果TairHash不存在或者field不存在则返回0 ,成功删除返回1。该命令会触发对field的被动淘汰。
EXHLEN EXHLEN <key> 获取key指定的TairHash中field个数,该命令不会触发对过期field的被动淘汰,也不会将其过滤掉,所以结果中可能包含已经过期但还未被删除的field。
EXHEXISTS EXHEXISTS <key> <field> 查询key指定的TairHash中是否存在对应的field。该命令会触发对field的被动淘汰。
EXHSTRLEN EXHSTRLEN <key> <field> 获取key指定的TairHash中一个field对应的value的长度。该命令会触发对field的被动淘汰。
EXHKEYS EXHKEYS <key> 获取key指定的TairHash中所有的field。该命令会过滤掉已经过期的field,但是为了尽快响应客户端,不会执行真正的删除操作。
EXHVALS EXHVALS <key> 获取key指定的TairHash中所有field的值 。该命令会过滤掉已经过期的field,但是为了尽快响应客户端,不会执行真正的删除操作。
EXHGETALL EXHGETALL <key> 获取key指定的TairHash中所有的field及其value。该命令会过滤掉已经过期的field,但是为了尽快响应客户端,不会执行真正的删除操作。
EXHSCAN EXHSCAN <key> <op> <subkey> [MATCH pattern] [COUNT count] 扫描key指定的TairHash。扫描的方式(使用op选项设置)可以为>、>=、<、<=、==、^、$。扫描的同时可以根据MATCH指定的pattern对subkey进行正则过滤,还可以使用COUNT对结果数目进行限制,如果不指定则默认值为10。该命令会过滤掉已经过期的field,但是为了尽快响应客户端,不会执行真正的删除操作。
表 5. 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中包含的多边形的相交情况。
表 6. 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内部信息,如当前层数和每一层的元素个数、错误率等。
表 7. 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实例的命令支持信息。