号外号外,新建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表示过期时间给的是毫秒
2、setnxCommand(client *c)
使用:SETNX key value
说明:这个函数适用于在key对应的数据不存在时设置该value
3、setexCommand(client *c)
使用:SETEX key seconds value
说明:为key设置expire时间,如果key存在,则覆盖之前的value,意义在于将覆盖value和添加expire整合成一个原子操作
4、psetexCommand(client *c)
使用:PSETEX key milleseconds value
说明:与SETEX命令功能相同,只是这个命令设置的是毫秒级的expire
5、getCommand(client *c)
使用:GET key
说明:获取该key对应的value内容,如果已过期则不显示
6、getsetCommand(client *c)
使用:GETSET key value
说明:首先获取该key对应的value数据,获取不到或者数据不存在返回,否则继续为该key设置新的值;功能举例可为,原子复位操作
7、setrangeCommand(client *c)
使用:SETRANGE key offset value
说明:设置key对应的value偏移量offset开始的地方替换为value,如果key对应的数据不存在,那么直接放置value,offset之前内容为0,如果value长度小于offset, 则延长value中间空白地方为空
8、getrangeCommand(client *c)
使用:GETRANGE key start end
说明:获取key对应数据从start到end范围的字符串数据,不存在或其他情况返回空
9、mgetCommand(client *c)
使用:MGET key1 key2 key3
说明:同时获取多个key对应的value,value不存在则返回nil
10、msetCommand(client *c)
使用:MSET key1 value1 key2 value2 key3 value3
说明:同时设置多个KV对数据,已存在则替换
11、msetnxCommand(client *c)
使用:MSETNX key1value1 key2 value2 key3 value3
说明:同时设置多个KV对,如果其中任何一个key存在,不设置任何值返回
12、incrCommand(client*c)
使用:INCR key
说明:将key对应的数据加1,key对应数据不存在的话,value基数为0,结果为1
13、decrCommand(client *c)
使用:DECR key
说明:将key对应的数据减1,key对应数据不存在的话,value基数为0,结果为-1
14、incrbyfloatCommand(client *c)
使用:INCRBYFLOAT key incrment
说明:将key对应的数据加上浮点型数据incrment
15、incrbyCommand(client *c)
使用:INCRBY key incr
说明:将key对应的数据加上incr
16、decrbyCommand(client *c)
使用:DECRBY key decr
说明:将key对应的数据减去decr
17、appendCommand(client *c)
使用:APPEND key value
说明:拼接key对应的数据,后面拼接现在的value,如果key对应数据不存在,等同于SET
18、strlenCommand(client *c)
使用:STRLEN key
说明:查询key对应的字符串value的长度,如果不存在则返回0