一、简介
String是最简单的数据类型,一个Key对应一个Value,String类型是二进制安装的。Redis的string可以包含任何数据,比如jpg图片或者序列化的对象。
1.set key value:设置key对应的值为string类型的value,返回值ok
127.0.0.1:6379> set mykey 'this is a sting'
OK
这样就想当于设置了mykey='this is a string'的键值对。set是可以重新设置的,也就是说我如果再执行set mykey 'this is another string'那么后面的值会覆盖前面的值。
2.get key:获取key键对应的string value:
127.0.0.1:6379> get mykey
"this is a string"
这样就获取了刚才我们设置的mykey对应的value 值为'this is a string'
3.setnx key value:只对不存在的key设置对应的value值,如果key已经存在那么设置不成功返回integer 0,nx是not exist的意思。如果key不存在那么设置成功返回integer 1
127.0.0.1:6379> setnx mykey 'this is mykey value'
(integer) 0
说明设置不成功,这个时候我们再用get mykey
127.0.0.1:6379> get mykey
"this is a string"
可以看到还是之前的值,并没有变化。那么我们用setnx mykey1 ‘this is mykey1 value'看看是什么情况,mykey1是之前没有设置过的
127.0.0.1:6379> setnx mykey1 'this is mykey1 string value'
(integer) 1
127.0.0.1:6379> get mykey1
"this is mykey1 string value"
很明显mykey1设置成功了。
4.setex key value:设置key对应的值为string类型的value,并指定此键值对应的有效期。
127.0.0.1:6379> setex boyname 10 joker
OK
上面语句的意思是我设置了一个键值为boyname的value为joker,并且10后过期,那么我get boyname回获取到10秒,但是10秒之后就会返回(nil)这个代表redis里的空字符串。
set boyname joker如果没有设置有效期,代表永久有效。
5.setrange key value start childstring:设置指定key的value的子字符串。从start开始,设置长度为length
127.0.0.1:6379> set email test@163.com
OK
127.0.0.1:6379> get email
"test@163.com"
127.0.0.1:6379> setrange email 5 gmail.com
(integer) 14
127.0.0.1:6379> get email
"test@gmail.com"
上面的命令首先设置email为test@163.com然后把163.com替换为 gmail.com
6.mset key1 value1 key2 value2 key3 value3 .........:一次设置多个key值,成功返回ok表示所有的值都设置了,失败返回0表示没有任何值被设置。
127.0.0.1:6379> mset key1 value1 key2 value2 key3 value3
OK
127.0.0.1:6379> get key1
"value1"
同样用mset再次设置kye1 key2 key3的值,会覆盖前面的值。
127.0.0.1:6379> mset key1 newvalue1 key2 newvalue2 key3 newvalue3
OK
127.0.0.1:6379> get key1
"newvalue1"
7.msetnx key1 value1 key2 value2 key3 value3 ......:一次设置多个key的值,成功返回ok表示所有的值都设置了,失败返回0表示没有任何值被设置,但是不会覆盖已经存在的可以值
127.0.0.1:6379> msetnx key1 value1 key2 value2 key4 value4
(integer) 0
因为key1 key2之前被设置过,所以失败
127.0.0.1:6379> msetnx key4 value4 key5 value5
(integer) 1
key4 key5都没有设置过,所以成功
8.getset key value:设置一个新值,并且返回旧值。
127.0.0.1:6379> get key4
"value4"
127.0.0.1:6379> getset key4 newvalue4
"value4"
127.0.0.1:6379> get key4
"newvalue4"
上面的命令首先获取key4原来的值为value4,用getset设置key4新值为newvalue4,同时返回了旧值value4。用完getset命令之后再用get获取key4为新值newvalue4.
9.getrange key start end:获取key的子字符串,从start开始到end结束
127.0.0.1:6379> getrange key4 1 3
"ewv"
10.mget key1 key2 key3...:批量获取
127.0.0.1:6379> mget key1 key2 key3
1) "test1"
2) "test2"
3) "test3"
11.incr key : 自增
127.0.0.1:6379> set num 2
OK
127.0.0.1:6379> incr num
(integer) 3
127.0.0.1:6379> get num
"3"
12.decr key : 自减
127.0.0.1:6379> decr num
(integer) 2
127.0.0.1:6379> get num
"2"
13 .incrby key count:以指定的count数进行自增
127.0.0.1:6379> incrby num 10
(integer) 12
127.0.0.1:6379> get num
"12"
14.decrby key count:以指定的count数进行自减
127.0.0.1:6379> decrby num 2
(integer) 10
127.0.0.1:6379> get num
"10"
15.append key childstring:给指定key的value追加childstring
127.0.0.1:6379> get key1
"test1"
127.0.0.1:6379> append key1 test2
(integer) 10
127.0.0.1:6379> get key1
"test1test2"
key1原来的值为test1,用append方法追加之后变成了test1test2。append的结果返回是追加后的字符串长度。
15.strlen key:获取key对应value字符串的长度
127.0.0.1:6379> strlen key1
(integer) 10