1、set
set key value
- 總是返回OK站超,不會失敗荸恕,如果已有值則覆蓋。
- 復雜度O(1)
127.0.0.1:6379> set name tom
OK
2死相、get
get key
- 取出key的值融求,不存在返回nil
- 復雜度O(1)
127.0.0.1:6379> get name
"tom"
127.0.0.1:6379> get no_exist
(nil)
2、setnx
setnx key value
- key不存在時將key的值設(shè)為value
- key存在的情況下不做任何動作
- setnx即set if not exists
- 成功返回1算撮,失敗返回0
- 復雜度O(1)
- 常用作鎖
127.0.0.1:6379> setnx name tom //不存在時成功設(shè)置
(integer) 1
127.0.0.1:6379> setnx name bob //已存在則失敗
(integer) 0
3生宛、setex
setex key seconds value
- key的值設(shè)為value,seconds秒后過期
- setex 即set expire
- 是原子操作县昂,先set再expire不是原子操作
- 復雜度O(1)
127.0.0.1:6379> setex test 5 1
OK
127.0.0.1:6379> get test
"1"
127.0.0.1:6379> get test // 5s后
(nil)
4、setrange
setrange key offset value
- 從offset開始對key的值進行覆蓋陷舅,返回值是修改后的長度倒彰。
- 如果原字符串長度5、設(shè)置的offset是10莱睁,中間的部分將使用零比特(zerobytes,"\x00")來填充待讳。
127.0.0.1:6379> set name tom
OK
127.0.0.1:6379> setrange name 5 hello
(integer) 10
127.0.0.1:6379> get name
"tom\x00\x00hello"
127.0.0.1:6379> set test 11111
OK
127.0.0.1:6379> setrange test 3 22222
(integer) 8
127.0.0.1:6379> get test
"11122222"
5、getrange
getrange key start end
- 類似字符串截取仰剿,取出start到end的內(nèi)容(包括start和end)
- 負數(shù)表示倒數(shù)第幾個创淡,如-1表示最后一個
- 超出范圍不會報錯,忽略超出部分
- 復雜度O(N)
127.0.0.1:6379> set test hello,world
OK
127.0.0.1:6379> getrange test 0 4
"hello"
127.0.0.1:6379> getrange test -5 -1
"world"
127.0.0.1:6379> getrange test 6 10000 // 超出部分忽略
"world"
6酥馍、mset
mset key1 value1 key2 value2 ...
- 即many set辩昆,用法同set阅酪,但可以一次設(shè)置多個值
- 復雜度O(N)旨袒,N為set的個數(shù)
- 操作redis時可以考慮將多個set合并成mset,一次訪問redis即可完成术辐,效率比一個一個來高
- 原子操作砚尽,不會出現(xiàn)某些成功設(shè)置某些失敗的情況
127.0.0.1:6379> mset book redis author someone
OK
7、mget
mget key1 key2 ...
- 即many get辉词,一次獲取多個key的值
- 復雜度O(N)必孤,N為get的個數(shù)
127.0.0.1:6379> mget book author
1) "redis"
2) "someone"
9、msetnx
msetnx key1 value1 key2 value2 ...
- 同setnx瑞躺,但同時設(shè)置多個值
- 有一個失敗則全部不設(shè)置
- 原子操作
- 復雜度O(N)
127.0.0.1:6379> setnx test1 1
(integer) 1
127.0.0.1:6379> msetnx test1 1 test2 2 //test1存在導致全部不設(shè)置
(integer) 0
127.0.0.1:6379> get test2 //test2為nil
(nil)
10敷搪、append
append key value
- key存在,則將value追加到原值后面
- key不存在幢哨,等同于set
- 返回值:追加value之后赡勘,key中字符串的長度
127.0.0.1:6379> set test hello
OK
127.0.0.1:6379> append test ,world
(integer) 11
127.0.0.1:6379> get test
"hello,world"
11、getset
getset key valua
- key值設(shè)為value,返回key的舊值
127.0.0.1:6379> set test hello
OK
127.0.0.1:6379> getset test world
"hello"
12捞镰、incr
incr key
- 將key存儲的數(shù)字+1
- key不存在時默認為0
- key的值不能表示為數(shù)字會error
127.0.0.1:6379> set test 3
OK
127.0.0.1:6379> incr test
(integer) 4
127.0.0.1:6379> incr test2 // 不存在的默認0
(integer) 1
127.0.0.1:6379> set test3 hello
OK
127.0.0.1:6379> incr test3 // hello不能表示為數(shù)字闸与,error
(error) ERR value is not an integer or out of range
13、decr
decr key
- key值-1岸售,用法同incr.
14践樱、incrby
incrby key num
- key的值+num,類似incr,但是增加指定的值
127.0.0.1:6379> set test 1
OK
127.0.0.1:6379> incrby test 3
(integer) 4
15凸丸、decrby
decrby key num
- key值減少num
127.0.0.1:6379> set test 10
OK
127.0.0.1:6379> decrby test 5
(integer) 5
16拷邢、strlen
strlen key
- 返回值為key的長度,key不存在返回0
127.0.0.1:6379> strlen test
(integer) 5
127.0.0.1:6379> strlen no_exists
(integer) 0
17屎慢、psetex
psetex key milliseconds value
- 與setex類型解孙,但時間的單位是毫秒
- 可用版本: >= 2.6.0
127.0.0.1:6379> psetex test 100 1
OK
127.0.0.1:6379> get test
(nil)