Redis字符串类型的操作:

Set key value [ex 秒数] / [px 毫秒数]  [nx] / [xx]

: set a 1 ex 10 , 10秒有效

Set a 1 px 9000  , 9秒有效

如果ex,px同时写,以后面的有效期为准

如 set a 1 ex 100 px 9000, 实际有效期是9000毫秒

 

nx: 表示key不存在时,执行操作

xx: 表示key存在时,执行操作

redis字符串类型的操作_字符串

redis字符串类型的操作_redis_02


msetnx key value

同时设置一个或多个key-value对,当且仅当key不存在。

即使只有一个key已存在,MSETNX也会拒绝所有传入key的设置操作

MSETNX是原子性的,因此它可以用作设置多个不同key表示不同字段(field)的唯一性逻辑对象(unique logic object),所有字段要么全被设置,要么全不被设置。

返回值:

当所有key都成功设置,返回1

如果所有key都设置失败(最少有一个key已经存在),那么返回0

127.0.0.1:6379> mset ceshi 123 ceshi1 321

OK

127.0.0.1:6379> msetnx ceshi 123 ceshi2 321

(integer) 0

127.0.0.1:6379> msetnx ceshi3 123 ceshi2 321

(integer) 1


strlen key


返回key所储存的字符串值的长度。

key储存的不是字符串值时,返回一个错误。

返回值:

字符串值的长度。

当 key不存在时,返回0

redis> SET mykey "Hello world"

OK

redis> STRLEN mykey

(integer) 11

redis> STRLEN nonexisting # 不存在的key长度视为0

(integer) 0


mset multi set,一次性设置多个键值

: mset key1 v1 key2 v2 ....

redis字符串类型的操作_key_03


get key

作用:获取key的值

redis字符串类型的操作_字符串_04


mget key1 key2 ...keyn

作用:获取多个key的值

redis字符串类型的操作_key_05


setrange key offset value

作用:把字符串的offset偏移字节,改成value

redis 127.0.0.1:6379> set greet hello

OK

redis 127.0.0.1:6379> setrange greet 2 x

(integer) 5

redis 127.0.0.1:6379> get greet

"hexlo"

 

注意如果偏移量>字符长度该字符自动补0x00

 

redis 127.0.0.1:6379> setrange greet 6 !

(integer) 7

redis 127.0.0.1:6379> get greet

"heyyo\x00!"


append key value

作用value追加到key的原值上

redis字符串类型的操作_key_06


getrange key start stop

作用是获取字符串中 [start, stop]范围的值

注意对于字符串的下标,左数从0开始,右数从-1开始

redis 127.0.0.1:6379> set title 'chinese'

OK

redis 127.0.0.1:6379> getrange title 0 3

"chin"

redis 127.0.0.1:6379> getrange title 1 -2

"hines"

 

注意

1: start>=length, 则返回空字符串

2: stop>=length,则截取至字符结尾

3: 如果start 所处位置在stop右边返回空字符串


getset key newvalue

作用获取并返回旧值,设置新值

redis字符串类型的操作_redis_07

incr key

作用指定的key的值加1,并返回加1后的值

redis字符串类型的操作_key_08

注意:

1:不存在的key当成0,incr操作

2: 范围为64有符号


incrby key number

redis字符串类型的操作_字符串_09


incrbyfloat  key  floatnumber

redis字符串类型的操作_redis_10


decr key

redis 127.0.0.1:6379> set age 20

OK

redis 127.0.0.1:6379> decr age

(integer) 19


decrby key number

redis字符串类型的操作_key_11


getbit  key  offset

作用:获取值的二进制表示,对应位上的值(从左,0编号)

redis 127.0.0.1:6379> set char A

OK

redis 127.0.0.1:6379> getbit char 1

(integer) 1

redis 127.0.0.1:6379> getbit char 2

(integer) 0

redis 127.0.0.1:6379> getbit char 7

(integer) 1


setbit  key offset  value

设置offset对应二进制位上的值

返回该位上的旧值

 

注意

1:如果offset过大,则会在中间填充0,

2: offset最大大到多少

3:offset最大2^32-1,可推出最大的的字符串为512M


bitop operation destkey key1 [key2...]

key1,key2..keyNoperation,并将结果保存到 destkey 上。

operation 可以是 AND 、 OR 、 NOT 、 XOR

 

redis 127.0.0.1:6379> setbit lower 7 0

(integer) 0

redis 127.0.0.1:6379> setbit lower 2 1

(integer) 0

redis 127.0.0.1:6379> get lower

" "

redis 127.0.0.1:6379> set char Q

OK

redis 127.0.0.1:6379> get char

"Q"

redis 127.0.0.1:6379> bitop or char char lower

(integer) 1

redis 127.0.0.1:6379> get char

"q"

 

注意对于NOT操作, key不能多个