Redis是一个key-value数据库,支持主从同步,数据存在内存中,性能卓越。可以用来存储字符串,哈希结构,链表,集合,因此,常用来提供数据结构服务。
字符串类型是Redis中最为基础的存储类型,它在Redis中是二进制安全的,这就意味着该类型可以接收任何格式的数据,在Redis中字符串类型的Value最多可以容纳的数据长度为512M。
String相关命令:
(1)APPEND key value:如果该key已经存在,APPEND命令将参数value数据追加到已经存在的value的末尾;如果该key不存在,APPEND命令将会创建一个新的key/value。
(2)DECR key:将指定的key的value原子性的递减1。如果该key不存在,其值初始为0,在decr之后其值为-1。如果value的值不能转换为整数值,例如hello,该操作将执行失败并返回相应的错误信息。
(3)INCR key:将指定key的value原子性的递增1,如果该key不存在,其初始化为0,在incr之后其值为1。如果value的值不能转换为整型值,如hello,该操作将执行失败并返回相应的错误信息。
(4)DECRBY key decrement:将指定的key的value原子性的减少decrement。如果该key不存在,其初始化为0,在decrby之后其值为-decrement,如果value的值不能转换为整数值,如hello,该操作将执行失败并返回相应的错误信息。
(5)INCRBY key increment:将指定的key的value原子性的增加increment。如果该key不存在,将其初始化为0,在incrby之后其值为increment。如果value不能转换为整数值,如hello。该操作将执行失败并返回相应的错误信息。
(6)GET key:获取指定key的vakue,如果与该key关联的value不是string类型,Redis将返回错误信息。因为GET命令只能用于获取string value,如果该key不存在,返回nil。
(7)SET key value:设定该key持有指定字符串value,如果该key已经存在,则覆盖其原有的值。
(8)GETSET key value:原子性的设置该key为指定的value,同时返回该key的原有值。和GET命令一样,该命令也只能处理string value,否则Redis将给出相关的错误信息。如果该key之前不存在,则返回nil。
(9)STRLEN key:返回指定key的字符值的长度,如果value不是string类型,Redis将执行失败并给出相关的错误信息。如果key不存在,返回0。
(10)SETEX key seconds value:原子性完成两个操作,一是设置该key的值为指定的字符串,同时设置该key在Redis服务器中的存活时间(秒数)。该命令主要用于Redis被当做Cache服务器时使用。
SETNX key value:如果指定的key不存在,则设定该key持有指定字符串value,此时效果等价于SET命令,相反如果该key已经存在,该命令不做任何操作并返回。(1表示设置成功,否则为0)
(11)SERRANGE key offset value:替换指定key的部分字符串值,从offset开始,替换的长度为该命令第三个参数value的字符串长度,其中offset的值大于该key的原有值value的字符串长度。Redis将会在value的后面补齐(offset-strlen(value))数量的0x00,之后再追加新的值。如果改建不存在,该命令会将原值的长度假设为0,并在其后添补offset个0x00后再追加新值。
(12)GETRANGE key start end:在截取字符串时,将以闭区间的方式同时包含start(0表示第一个字符)和end所在的字符,如果end值超过value的字符串长度,该命令只能截取从start开始之后所有的字符数据。
(13)SETBIT key offset value:设置在指定offset上的BIT的值。该值只能为1或者0,在设定后该命令返回offset上原有的BIT值。如果指定的key不存在,该命令将创建一个新的值,并在指定的offset上设定参数中的BIT值。如果offset大于value的字符长度,Redis将拉长value的值并在指定offset上设置参数中的BIT值,中间添加的BIT值为0。
(14)GETBIT key offset:返回指定offset上BIT的值,0或1,如果offset超过string value的长度,该命令返回0,所以对于空字符串始终返回0。
(15)MGET key[key…]:返回所有指定keys的vallues,如果其中某个key不存在,或者其值不为string类型,该key的value将返回nil。
(16)MSET key value[key value….]:该命令原子性的完成参数中所有key/value的设置操作,其具体行为可以看成是多次迭代执行SET命令。
(17)MSETNX key value[key value…]:该命令原子性的完成参数中所有key/value的设置操作,其具体行为可以看成是多次迭代执行SETNX命令.(如果这一批中任意一个key已经存在了,那么该操作将全部回滚,即所有的修改都不会生效,1表示所有的keys都设置成功,0表示没有任何key被修改。)