redis字串命令_redis

來源:互聯網
上載者:User

字串命令是redis中最常見,最簡單的命令。

1、set命令-設定指定key的值
redis中set命令用於設定給定 key的值,如果key已經儲存其他值,則覆蓋舊值。
文法:

set key_name value

版本:1.0.0及以上
傳回值:
在redis 2.6.12以前版本,set命令總返回ok
從redis 2.6.12版本開始,set在設定作業成功完成時,才返回ok

redis 127.0.0.1:6379> SET key "value"OKredis 127.0.0.1:6379> GET key"value"redis 127.0.0.1:6379> SET key "new-value"OKredis 127.0.0.1:6379> GET key"new-value"

2、get命令-擷取指定的key值
文法:

get key_name

版本:1.0.0及以上
傳回值:返回key的值,如果key不存在時,返回nil。如果key不是字串類型,那麼返回一個錯誤。

127.0.0.1:6379> get mynumber"100"127.0.0.1:6379> get abc(nil)127.0.0.1:6379> get mylist(error) WRONGTYPE Operation against a key holding the wrong kind of value127.0.0.1:6379>

3、getrange命令-返回key中字串值的子串
redis中getrange命令用於擷取儲存在指定key中字串的子字串。字串的截取範圍由start和end兩個位移量決定。
文法:

getrange keyname start end

版本:2.4.0及以上
傳回值:
截取得到的子字串。如果keyname類型不是string,報告對應的錯誤

127.0.0.1:6379> getrange mynumber 1 2"00"127.0.0.1:6379> getrange abc 1 2""127.0.0.1:6379> getrange mylist(error) ERR wrong number of arguments for 'getrange' command127.0.0.1:6379>

4、getset命令-將給定key的值設定為value,並返回key的舊值。
redis中getset命令用於設定指定key的值,並返回key的舊值。
文法:

getset  keyname vale

版本:1.0.0及以上
傳回值;返回給定Key的舊值,當key沒有舊值時,即key不存在時,返回nil。
當key存在但是不是字串類型時,返回一個錯誤。

127.0.0.1:6379> getset mynumber "10000""100"127.0.0.1:6379> getset aaa(error) ERR wrong number of arguments for 'getset' command127.0.0.1:6379> getset mylist(error) ERR wrong number of arguments for 'getset' command127.0.0.1:6379>

5、getbit命令-對key所儲存的字串值,擷取指定便宜上的位。
文法:

getbit keyname offset

版本:2.2.0及以上
傳回值:
字串值指定位移量上的位(bit)
當位移量offset比字串值的長度大,或者key不存在時,返回0。

127.0.0.1:6379> getbit mynumber 3(integer) 1127.0.0.1:6379> getbit aaa 1(integer) 0127.0.0.1:6379> getbit mylist 1(error) WRONGTYPE Operation against a key holding the wrong kind of value

由於當字串value的key的位可能為0和1。不存在也是0,所以這個命令不是很常用

6、mget命令-擷取室友給定key的值
redis中mget命令用於返回所有(一個或多個)給定的key值。如果給定的key裡邊,有某個key不存在,那麼這個key返回特殊值nil
文法:

mget key1 [key2 ... keyn]

版本:1.0.0及以上
傳回值:
一個包含所有給定key的值的列表

127.0.0.1:6379> mget mynumber aaa mylist1) "10000"2) (nil)3) (nil)127.0.0.1:6379>

7、setbit命令-對key所儲存的字串值,設定或清除指定位移上的位(bit)
文法:

setbit keyname offset value(0 or 1)

版本:2.2.0及以上
傳回值:
指定位移量原來的儲存的位。
eg:

127.0.0.1:6379> setbit mynumber 2 0(integer) 1127.0.0.1:6379> getbit mynumber 2(integer) 0127.0.0.1:6379> get mynumber"\x110000"127.0.0.1:6379> setbit mynumber 2 1(integer) 0127.0.0.1:6379> getbit mynumber 1(integer) 0127.0.0.1:6379>127.0.0.1:6379> get mynumber"10000"

8、setex命令-將值value關聯到key,給key設定到期時間
redis中setex命令為指定的key設定值及到期時間。如果key已經存在,setex命令將會替換舊的值。
文法:

setex keyname timeout value

版本:2.0.0
傳回值:設定成功時返回OK
eg:

127.0.0.1:6379> setex testsetex 100 "just a test"OK127.0.0.1:6379> ttl testsetex(integer) 94127.0.0.1:6379> setex mylist 110 "second test"OK127.0.0.1:6379> get mylist"second test"

注意:不管key的value原來是什麼類型,都會被重設為輸入的value。

9、setrange命令-從指定位移開始覆蓋給定key所儲存的字串。
文法:

setrange keyname  offset value

版本:2.0.0
傳回值:
被修改後的字串長度。
eg:

redis 127.0.0.1:6379> SET key1 "Hello World"OKredis 127.0.0.1:6379> SETRANGE key1 6 "Redis"(integer) 11redis 127.0.0.1:6379> GET key1"Hello Redis"

錯誤情況:

127.0.0.1:6379> rpush mylist "abc"(integer) 1127.0.0.1:6379> get mylist(error) WRONGTYPE Operation against a key holding the wrong kind of value127.0.0.1:6379> get key1"Hello Redis"127.0.0.1:6379> setrange 100 "wuzhiming"(error) ERR wrong number of arguments for 'setrange' command127.0.0.1:6379> setrange 2 mylilst "wuzhiming"(error) ERR value is not an integer or out of range127.0.0.1:6379>

10、strlen命令-返回key所儲存的字串值的長度。
redis中strlen命令用於擷取指定key所儲存的字串的長度。當key儲存的不是字串值時,返回一個錯誤。
文法:

strlen keyname

版本:2.2.0及以上
傳回值:字串的長度。當key不存在時,返回0
eg:

redis> SET mykey "Hello world"OKredis> STRLEN mykey(integer) 11redis> STRLEN nonexisting(integer) 0

11、mset命令-同時設定一個或多個key-value
redis中mset命令用於同時設定一個或多個key-value。其中value需要是string類型。
文法:

mset key1 value1 [key2 value2 ... keyn valuen]

版本:1.0.1
傳回值:ok
eg:

127.0.0.1:6379> mset key2 "aaa" key3 "bbb" mylist "ccc"OK127.0.0.1:6379> get mylist"ccc"127.0.0.1:6379>

從例子可以看出,就算key原來是list類型,也會被覆蓋為string類型。

12、msetnx命令:同時設定多個key-value。若且唯若所有給定key都不存在。
redis中msetnx命令用於所有給定key都不存在時,同時設定一個或者多個key-value對。
文法:

msetnx key1 value1 [key2 value2 ... keyn valuen]

版本:1.0.1及以上
傳回值:
當所有key都成功設定,返回1。如果所有給定key都設定失敗(至少有一個key已經存在),那麼返回0。

13、psetex命令-設定key的值的同時,以毫秒為單位設定key的生命時間。
文法:

psetex keyname EXPIRY_IN_MILLISECOND value

版本:2.6.0
傳回值:設定成功返回ok
和setex一樣,只是時間對應的單位變化了。

14、incr命令-將key中儲存的數字值原子增加1。
redis中 incr命令將Key中儲存的數字值增加1。
如果key不存在,那麼key值會先被初始化為0,然後再執行incr操作。
如果值包含錯誤的類型,或字串類型的值不能表示為數字,那麼返回一個錯誤。
現在在64位(bit)有符號數字表示之內。
文法:

incr keyname

版本:1.0.0及以上
傳回值:執行incr命令之後key的值。
eg:

127.0.0.1:6379> set testincr "100"OK127.0.0.1:6379> incr testincr(integer) 101127.0.0.1:6379> get testincr"101"127.0.0.1:6379> incr mylist(error) ERR value is not an integer or out of range127.0.0.1:6379>

15、incrby命令-將key所儲存的值加上給定的增量值(increment)
redis-incrby命令將key中所儲存的數值加上指定的增量值。
如果key不存在,那麼key的值會被初始化為0,然後再執行incrby命令。如果值包含錯誤的類型,或字串類型的值不能表示為數字,那麼返回一個錯誤,操作的值限制在64位有符號數字表示之內。
文法:

incrby keyname incrnumber

版本:1.0.0及以上
傳回值:
加上指定的增量值之後,key的值。
eg:

127.0.0.1:6379> get testincr"101"127.0.0.1:6379> incrby testincr 2(integer) 103127.0.0.1:6379> get testincr"103"127.0.0.1:6379> incrby mylist 2(error) ERR value is not an integer or out of range127.0.0.1:6379> incrby aaa(error) ERR wrong number of arguments for 'incrby' command127.0.0.1:6379> incrby aaa 3(integer) 3

16、incrbyfloat命令-將key所儲存的值加上給定的浮點增量值。
redis中incrbyfloat命令為key中所儲存的值加上指定的浮點數增量值,如果key不存在,那麼incrbyfloat會先將key的值設為0,再執行加法操作。
文法:

increbyfloat keyname incrnumber

版本:2.6.0及以上
傳回值:
執行命令後key的值。
eg:

127.0.0.1:6379> set float "0.01"OK127.0.0.1:6379> get float"0.01"127.0.0.1:6379> incrbyfloat float "1.2""1.21"127.0.0.1:6379> get float"1.21"127.0.0.1:6379> get testincr"103"127.0.0.1:6379> incrbyfloat testincr "0.01""103.01000000000001"127.0.0.1:6379> incrbyfloat mylist "0.01"(error) ERR value is not a valid float

17、decr命令-將key中儲存的數字值減1
redis中decr命令將key中儲存的數字值減1。如果key不存在,那麼key的值會先被初始化為0,然後再執行decr操作。
如果值包含錯誤的類型,或者字串的值不能表示為數字,那麼返回一個錯誤。
文法:

decr keyname

版本:1.0.0及以上
傳回值:執行命令之後key的值。
eg:

# 對存在的數字值 key 進行 DECRredis> SET failure_times 10OKredis> DECR failure_times(integer) 9# 對不存在的 key 值進行 DECRredis> EXISTS count(integer) 0redis> DECR count(integer) -1# 對存在但不是數值的 key 進行 DECRredis> SET company YOUR_CODE_SUCKS.LLCOKredis> DECR company(error) ERR value is not an integer or out of range

18、decrby命令-key所儲存的值減去給定減量值。
redis中decrby命令將key所儲存的值減去指定的減量值。
如果key不存在,那麼key的值會先被初始化為0,然後執行decrby操作。如果值包含錯誤的類型,或字串類型的值不能表示為數字,那麼返回一個錯誤。
文法:

decrby keyname number

版本:1.0.0及以上
傳回值:減去指定減量值之後,key的值。
eg:

# 對已存在的 key 進行 DECRBYredis> SET count 100OKredis> DECRBY count 20(integer) 80# 對不存在的 key 進行DECRBYredis> EXISTS pages(integer) 0redis> DECRBY pages 10(integer) -10

19、append命令-如果key已經存在並且是一個字串,append命令將key原來的值末尾追加一個值。
redis中append命令用於為指定的key追加值。如果key已經存在並且是一個字串,append命令將value追加到Key原來的值的末尾。如果key不存在,append就簡單地將給定key設為value,就像執行set key value一樣。
文法:

append keyname newvalue

版本:2.0.0及以上
傳回值:追加指定值之後,key中字串的長度。
eg:

# 對不存在的 key 執行 APPENDredis> EXISTS myphone               # 確保 myphone 不存在(integer) 0redis> APPEND myphone "nokia"       # 對不存在的 key 進行 APPEND ,等同於 SET myphone "nokia"(integer) 5                         # 字元長度# 對已存在的字串進行 APPENDredis> APPEND myphone " - 1110"     # 長度從 5 個字元增加到 12 個字元(integer) 12redis> GET myphone"nokia - 1110"

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.