redis命令解析之string类型

号外号外,新建Redis交流讨论群:332160890,欢迎加入!!


redis的字符串string类型的编码有三种:

OBJ_ENCODING_RAW

OBJ_ENCODING_INT

OBJ_ENCODING_EMBSTR


1、setCommand(client *c)

使用:SET  key value  [NX]  [XX] [EX  <seconds>]  [PX <millseconds>]

说明:这个函数中会解析当前client所带的参数信息,因为除了set key value三个参数外其他参数都是可选的,因此需要分别解析,然后将解析后的结构传递给setGenericCommand函数进行真正的处理。其中,NX表示如果key不存在那么设置,而XX表示如果key存在设置,EX表示过期时间给的是秒,PX表示过期时间给的是毫秒

2setnxCommand(client *c)

使用:SETNX  key value

说明:这个函数适用于在key对应的数据不存在时设置该value

3setexCommand(client *c)

使用:SETEX  key seconds  value

说明:为key设置expire时间,如果key存在,则覆盖之前的value,意义在于将覆盖value和添加expire整合成一个原子操作

4psetexCommand(client *c)

使用:PSETEX  key milleseconds value

说明:与SETEX命令功能相同,只是这个命令设置的是毫秒级的expire

5、getCommand(client *c)

使用:GET  key

说明:获取该key对应的value内容,如果已过期则不显示

6getsetCommand(client *c)

使用:GETSET  key value

说明首先获取该key对应的value数据获取不到或者数据不存在返回否则继续为该key设置新的值;功能举例可为,原子复位操作

7setrangeCommand(client *c)

使用:SETRANGE  key offset  value

说明设置key对应的value偏移量offset开始的地方替换为value,如果key对应的数据不存在,那么直接放置value,offset之前内容为0,如果value长度小于offset, 则延长value中间空白地方为空

8getrangeCommand(client *c)

使用:GETRANGE  key start  end

说明:获取key对应数据从startend范围的字符串数据,不存在或其他情况返回空

9mgetCommand(client *c)

使用:MGET  key1 key2  key3

说明同时获取多个key对应的value,value不存在则返回nil

10msetCommand(client *c)

使用MSET key1 value1 key2 value2 key3 value3

说明同时设置多个KV对数据已存在则替换

11msetnxCommand(client *c)

使用:MSETNX key1value1 key2 value2 key3 value3

说明:同时设置多个KV对,如果其中任何一个key存在,不设置任何值返回

12incrCommand(client*c)

使用INCR key

说明key对应的数据加1,key对应数据不存在的话,value基数为0,结果为1

13decrCommand(client *c)

使用:DECR  key

说明key对应的数据减1key对应数据不存在的话,value基数为0,结果为-1

14incrbyfloatCommand(client *c)

使用:INCRBYFLOAT  key incrment

说明:将key对应的数据加上浮点型数据incrment

15incrbyCommand(client *c)

使用:INCRBY  key incr

说明:将key对应的数据加上incr

16decrbyCommand(client *c)

使用:DECRBY  key decr

说明:将key对应的数据减去decr

17appendCommand(client *c)

使用:APPEND  key value

说明拼接key对应的数据,后面拼接现在的value,如果key对应数据不存在,等同于SET

18strlenCommand(client *c)

使用STRLEN key

说明:查询key对应的字符串value的长度,如果不存在则返回0

 



猜你喜欢

转载自blog.csdn.net/fusan2004/article/details/65446484