1、简单描述
string类型是redis最基本的类型,而且string类型是二进制安全的,就是说redis的string类型可以包含任何数据,比如jpg图片或者序列化的对象。string类型最大可以存储1G字节数据。另外,string类型可以被部分命令(比如inrc)按照int类型处理。如果只使用string类型,那么redis可以被当做是拥有持久化功能的memcached,但是redis的string类型的操作比memcached多很多,下面来看具体的命令。
2、相关命令(基于4.0.1版本,2017年07月发布的redis稳定版本)
1)set命令:设置key的值,如果成功,返回ok,否则返回0。
2)setnx命令:设置key的值,如果key存在,则不会设置值而是返回0。
3)getset命令:设置key为新的值,并且返回旧的值。如果key是不存在的,则设置了值后,返回nil,就是空串的意思。原子操作。
4)mset命令:设置多个key。
5)mget命令:获取多个key的值。
6)msetnx:设置多个key,如果key存在则返回0。
【注意】msetnx,只要有一个key设置失败,其他的也一起失败:
上面的例子,如果单独msetnx str5 555是会成功的,因为有一个str这个key是存在的,所以setnx会失败,返回0。
7)incr命令,给string类型的值加1。
8)decr命令:给值减1。
9)incrby命令:给key加上某个数。
10)decrby命令:给key值减去某个数。
【注意】incrby 加一个负数,相当于decrby命令。
【注意】对于一个不存在的key进行incr、incrby、decr和decrby命令,会把key的初始值设置为0,然后进行incr等命令操作。
【注意】如果string类型的值不是整型,就不能做incr等操作。
11)append命令:给key的值追加一个字符串
【注意】对一个不存在的key执行append操作,会当做key的初始值为空字符串,然后追加字符串。
12)substr命令:从key的值里面获取部分的值,不修改key的值。
3、小结
1)msetnx命令:只要其中有个key的操作是失败的,则所有key都是操作失败;
2)incr、incrby、decr和decrby命令,如果被操作的key的值不能转为int型,则会返回出错信息;