本文介绍Redis企业版的TairString,是Tair团队自研,一种带版本号的String类型数据结构。
TairString简介
Redis的String仅由key和value组成,而TairString不仅包含key和value,还携带了版本(version),可用于乐观锁等场景。除此之外,TairString在Redis String加减功能的基础上支持了边界设置,可以将INCRBY、INCRBYFLOAT的结果限制在一定的范围内,超出范围则提示错误。
主要特性- value携带版本号。
- 使用INCRBY、INCRBYFLOAT递增数据时可设置变更范围。
该Module已开源,更多信息请参见TairString。
最佳实践
前提条件
实例为Redis企业版性能增强型或持久内存型(小版本为1.2.3及以上,升级方法请参见升级小版本)。注意事项
- 本文的操作对象为企业版实例中的TairString数据。
说明 企业版实例中可同时设置Redis String(即Redis原生String)和TairString,本文的命令无法对Redis String使用。
- 最新小版本将提供更丰富的功能与稳定的服务,建议将实例的小版本升级到最新。
命令列表
命令 | 语法 | 简介 |
---|---|---|
EXSET | EXSET key value [EX time] [PX time] [EXAT time] [PXAT time] [NX | XX] [VER | ABS version] |
若key不存在,则创建新的key,并将value保存到key中;若key已存在,则覆盖原来value的值。 |
EXGET | EXGET key |
获取TairString的value和version。 |
EXSETVER | EXSETVER key version |
设置目标key的version。 |
EXINCRBY | EXINCRBY key num [EX time] [PX time] [EXAT time] [PXAT time] [NX | XX] [VER | ABS version] [MIN minval] [MAX maxval] |
对TairString的value进行自增自减操作,num的范围为long。 |
EXINCRBYFLOAT | EXINCRBYFLOAT key num [EX time] [PX time] [EXAT time] [PXAT time] [NX | XX] [VER | ABS version] [MIN minval] [MAX maxval] |
对TairString的value进行自增自减操作,num的范围为double。 |
EXCAS | EXCAS key newvalue version |
当目标key的version值与指定的version相等时,则更新key的value值;version不相等,则返回旧的value和version。 |
EXCAD | EXCAD key version |
当目标key的version值与指定的version相等时,则删除Key。 |
DEL | DEL key [key ...] |
使用原生Redis的DEL命令可以删除一条或多条TairString数据。 |
大写关键字
:命令关键字。斜体
:变量。[options]
:可选参数,不在括号中的参数为必选。A|B
:该组参数互斥,请进行二选一或多选一。...
:前面的内容可重复。
EXSET
类别 | 说明 |
---|---|
语法 | EXSET key value [EX time] [PX time] [EXAT time] [PXAT time] [NX | XX] [VER | ABS version] |
时间复杂度 | O(1) |
命令描述 |
若key不存在,则创建新的key,并将value保存到key中;若key已存在,则覆盖原来value的值。 |
选项 |
|
返回值 |
|
示例 |
命令示例:
返回示例:
|
EXGET
类别 | 说明 |
---|---|
语法 | EXGET key |
时间复杂度 | O(1) |
命令描述 |
获取TairString的value和version。 |
选项 |
|
返回值 |
|
示例 |
命令示例:
返回示例:
|
EXSETVER
类别 | 说明 |
---|---|
语法 | EXSETVER key version |
时间复杂度 | O(1) |
命令描述 |
设置目标key的version。 |
选项 |
|
返回值 |
|
示例 |
命令示例:
返回示例:
|
EXINCRBY
类别 | 说明 |
---|---|
语法 | EXINCRBY key num [EX time] [PX time] [EXAT time] [PXAT time] [NX | XX] [VER | ABS version] [MIN minval] [MAX maxval] |
时间复杂度 | O(1) |
命令描述 |
对TairString的value进行自增自减操作,num的范围为long。 |
选项 |
|
返回值 |
|
示例 |
提前执行 命令示例:
返回示例:
|
EXINCRBYFLOAT
类别 | 说明 |
---|---|
语法 | EXINCRBYFLOAT key num [EX time] [PX time] [EXAT time] [PXAT time] [NX | XX] [VER | ABS version] [MIN minval] [MAX maxval] |
时间复杂度 | O(1) |
命令描述 |
对TairString的value进行自增自减操作,num的范围为double。 |
选项 |
|
返回值 |
|
示例 |
提前执行 命令示例:
返回示例:
|
EXCAS
类别 | 说明 |
---|---|
语法 | EXCAS key newvalue version |
时间复杂度 | O(1) |
命令描述 |
当目标key的version值与指定的version相等时,则更新key的value值;version不相等,则返回旧的value和version。 |
选项 |
|
返回值 |
|
示例 |
提前执行 命令示例:
返回示例:
|
EXCAD
类别 | 说明 |
---|---|
语法 | EXCAD key version |
时间复杂度 | O(1) |
命令描述 |
当目标key的version值与指定的version相等时,则删除Key。 |
选项 |
|
返回值 |
|
示例 |
提前执行 命令示例:
返回示例:
|