您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Redis中字符串怎么用”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Redis中字符串怎么用”這篇文章吧。
redis是以key value的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)的,每個(gè)key都是唯一的,字符串是redis里面最簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu),它的內(nèi)部其實(shí)是一個(gè)字符數(shù)組。
redis里面的字符串是一個(gè)動(dòng)態(tài)字符數(shù)組,有點(diǎn)類似Java里的arrayList,采用預(yù)分配冗余的方式來減少內(nèi)存的頻繁分配,內(nèi)部為當(dāng)前字符串分配的實(shí)際空間 capacity一般要高于實(shí)際字符串長(zhǎng)度len。當(dāng)字符串長(zhǎng)度小于1MB時(shí),擴(kuò)容都是加倍現(xiàn)有的空間。如果字符串長(zhǎng)度超過1MB,擴(kuò)容時(shí)一次只會(huì)多擴(kuò)1MB 的空間,字符串最大長(zhǎng)度為 512MB 。
下面我們嘗試常用的一些命令
>set name mangoOK>get name mango"mango">exists name(intgeter)>del name(intgeter)>get name(nil)
批處理
>mset name1 mango name2 loveOK>mget name1 name21)"mango"2)"love"
延期
> set name mango
OK
> get name
"mango"
> expire name 5
...5s后
>get name
(nil)
>setex name 5 mango #5s 后過期,等價(jià)于 set+exp工 re
> get name
"mango"
...5s后
> get name
(nil)
>setnx name mango #如果 name不存在就執(zhí)行set
(integer) 1
> get name
"mango"
> setnx name love
(integer) 0 #因?yàn)?nbsp;name 已經(jīng)存在,所以 set 創(chuàng)建不成功
#如果 name 不存在就執(zhí)行 set 創(chuàng)建
> get name
"mango" #值沒有改變
計(jì)數(shù)
如果value是一個(gè)整數(shù),可以執(zhí)行自增操作,自增的范圍signed long 的最大值和最小值之間,超出了這個(gè)范圍,Redis 會(huì)報(bào)錯(cuò)。
>set age 18OK>incr age(integer)19>incrby age 2(integer)21>incrby age -2(integer)19>set codemax 9223372036854775807OK> incr codemax(error) ERR increment or decrement would overflow
以上是“Redis中字符串怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(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)容。