溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Redis字符串命令有哪些

發(fā)布時(shí)間:2021-12-07 14:33:27 來(lái)源:億速云 閱讀:124 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要介紹“Redis字符串命令有哪些”,在日常操作中,相信很多人在Redis字符串命令有哪些問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Redis字符串命令有哪些”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

APPEND

使用APPEND命令時(shí),如果key已經(jīng)存在,則會(huì)直接在value后追加值,如果key不存在,則會(huì)先創(chuàng)建一個(gè)value為空字符串的key,然后再追加:

127.0.0.1:6379> APPEND k1 hello
(integer) 5
127.0.0.1:6379> GET k1
"hello"
127.0.0.1:6379> APPEND k1 world
(integer) 10
127.0.0.1:6379> GET k1
"helloworld"

DECR

DECR命令可以實(shí)現(xiàn)對(duì)value的減1操作,如果key不存在,則key對(duì)應(yīng)的初始值會(huì)被置為0,如果key的value不為數(shù)字,則會(huì)報(bào)錯(cuò),如下:

127.0.0.1:6379> SET k3 19
OK
127.0.0.1:6379> DECR k3
(integer) 18
127.0.0.1:6379> GET k3
"18"
127.0.0.1:6379> SET k4 aa
OK
127.0.0.1:6379> DECR k4
(error) ERR value is not an integer or out of range

DECRBY

DECRBY和DECR類似,不同的是DECRBY可以指定步長(zhǎng),如下:

127.0.0.1:6379> GET k3
"8"
127.0.0.1:6379> DECRBY k3 4
(integer) 4
127.0.0.1:6379> GET k3
"4"

GET

GET命令用來(lái)獲取對(duì)應(yīng)key的value,如果key不存在則返回nil,如下:

127.0.0.1:6379> GET k5
(nil)

GETRANGE

GETRANGE用來(lái)返回key所對(duì)應(yīng)的value的子串,子串由start和end決定,從左往右計(jì)算,如果下標(biāo)是負(fù)數(shù),則從右往左計(jì)算,其中-1表示最后一個(gè)字符,-2是倒數(shù)第二個(gè)…,如下:

127.0.0.1:6379> SET k1 helloworld
OK
127.0.0.1:6379> GETRANGE k1 0 2
"hel"
127.0.0.1:6379> GETRANGE k1 -3 -1
"rld"

GETSET

GETSET命令可以用來(lái)獲取key所對(duì)應(yīng)的value,并對(duì)key進(jìn)行重置,如下:

127.0.0.1:6379> SET k1 v1
OK
127.0.0.1:6379> GET k1
"v1"
127.0.0.1:6379> GETSET k1 vv
"v1"
127.0.0.1:6379> GET k1
"vv"

INCR

INCR操作可以對(duì)指定key的value執(zhí)行加1操作,如果指定的key不存在,那么在加1操作之前,會(huì)先將key的value設(shè)置為0,如果key的value不是數(shù)字,則會(huì)報(bào)錯(cuò)。如下:

127.0.0.1:6379> INCR k2
(integer) 1

INCRBY

INCRBY和INCR功能類似,不同的是可以指定增長(zhǎng)的步長(zhǎng),如下:

127.0.0.1:6379> INCRBY k2 99
(integer) 100

INCRBYFLOAT

INCRBYFLOAT命令可以用來(lái)增長(zhǎng)浮點(diǎn)數(shù),如下:

127.0.0.1:6379> SET k1 0.5
OK
127.0.0.1:6379> INCRBYFLOAT k1 0.33
"0.83"

MGET與MSET

MGET與MSET分別用來(lái)批量設(shè)置值和批量獲取值,如下:

127.0.0.1:6379> MSET k1 v1 k2 v2 k3 v3
OK
127.0.0.1:6379> MGET k1 k2 k3
1) "v1"
2) "v2"
3) "v3"

SETEX

SETEX用來(lái)給key設(shè)置value,同時(shí)設(shè)置過(guò)期時(shí)間,等效于先給key設(shè)置value,再給key設(shè)置過(guò)期時(shí)間,如下:

127.0.0.1:6379> SETEX k1 30 v1
OK
127.0.0.1:6379> TTL k1
(integer) 26
127.0.0.1:6379> GET k1
"v1"

PSETEX

PSETEX的作用和SETEX類似,不同的是,這里設(shè)置過(guò)期時(shí)間的單位是毫秒,如下:

127.0.0.1:6379> PSETEX k1 60000 v1
OK
127.0.0.1:6379> PTTL k1
(integer) 55412

SETNX

SETNX是 SET if Not eXists的簡(jiǎn)寫(xiě),SET命令在執(zhí)行時(shí),如果key已經(jīng)存在,則新值會(huì)覆蓋掉舊值,而對(duì)于SETNX命令,如果key已經(jīng)存在,則不做任何操作,如果key不存在,則效果等同于SET命令。如下:

127.0.0.1:6379> SETNX k1 v1
(integer) 1
127.0.0.1:6379> SETNX k1 vv
(integer) 0
127.0.0.1:6379> GET k1
"v1"

MSETNX

MSETNX兼具了SETNX和MSET的特性,但是MSETNX在執(zhí)行時(shí),如果有一個(gè)key存在,則所有的都不會(huì)執(zhí)行,如下:

127.0.0.1:6379> MSETNX k1 v1 k2 v2
(integer) 0

因?yàn)閗1已經(jīng)存在,所以k2也沒(méi)執(zhí)行成功。

SETRANGE

SETRANGE用來(lái)覆蓋一個(gè)已經(jīng)存在的key的value,如下:

127.0.0.1:6379> set k1 helloworld
OK
127.0.0.1:6379> get k1
"helloworld"
127.0.0.1:6379> SETRANGE k1 5 redis
(integer) 10
127.0.0.1:6379> get k1
"helloredis"

但是如果已經(jīng)存在的key的value長(zhǎng)度小于offset,則不足的地方用0補(bǔ)齊,如下:

127.0.0.1:6379> set k1 helloredis
OK
127.0.0.1:6379> SETRANGE k1 20 --java
(integer) 26
127.0.0.1:6379> GET k1
"helloredis\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00--java"

STRLEN

STRLEN用來(lái)計(jì)算key的value的長(zhǎng)度,如下:

127.0.0.1:6379> STRLEN k1
(integer) 26

到此,關(guān)于“Redis字符串命令有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI