Redis学习与实战之字符串命令
字符串命令
一、基本字符串命令
1.基本字符串操作命令(設(shè)置、取值、刪除、取長(zhǎng)度)
| Set | 為指定的一個(gè)鍵設(shè)置對(duì)應(yīng)的值,如果已經(jīng)存在,則直接覆蓋原來(lái)的值 | O(1) |
| Mset | 對(duì)多個(gè)鍵設(shè)置對(duì)應(yīng)的值,如果值已經(jīng)存在,則直接覆蓋原來(lái)的值。該命令是原子操作 | O(n) |
| MSetNX | 對(duì)多個(gè)鍵設(shè)置對(duì)應(yīng)的值,該命令不允許指定的任何一個(gè)鍵已經(jīng)存在,如果其中有一個(gè)鍵已經(jīng)存在,則該命令執(zhí)行失敗 | O(n) |
| Get | 得到一個(gè)指定鍵的字符串值,如果鍵不存在,則返回nil;如果值不是字符串則返回一個(gè)錯(cuò)誤信息,因?yàn)樵撁钪荒芴幚鞸tring類型的值 | O(1) |
| MGet | 得到所有指定鍵的字符串值,與Get區(qū)別是可以同時(shí)指定多個(gè)鍵,同時(shí)獲取多個(gè)值 | O(n) |
| Del | 刪除指定鍵的值 | O(1) |
| StrLen | 獲取指定鍵的長(zhǎng)度 | O(1) |
①Set命令
語(yǔ)法:Set key value [EX seconds][PX milliseconds][NX|XX]
參數(shù)說(shuō)明:key value 是字符串鍵和值,必選項(xiàng);EX是設(shè)置到期時(shí)間(單位:秒)
PX(單位:毫秒);NX,如果指定的鍵不存在,僅僅是建立鍵名;XX,只有鍵存在時(shí),才可以設(shè)置對(duì)應(yīng)的值;
說(shuō)明:Redis所有操作命令,語(yǔ)法帶有”[“和”]”符號(hào)時(shí),意味著括號(hào)內(nèi)的參數(shù)是可選的,不是必填的。
例:
set bookName "《Redis學(xué)習(xí)與實(shí)踐》" //設(shè)置鍵名為bookName,值為《Redis學(xué)習(xí)與實(shí)踐》 OK //返回值 set bookName "《NoSQL數(shù)據(jù)庫(kù)》" EX 1 //設(shè)置bookName 1秒后過(guò)期 OK //返回值②MSet命令
語(yǔ)法:MSet key value [key value …]
參數(shù)說(shuō)明:key為指定需要設(shè)置的字符串鍵,value為對(duì)應(yīng)的值,可以同時(shí)設(shè)置多個(gè)鍵值對(duì);返回值總是OK,因?yàn)樵撁顖?zhí)行不會(huì)失敗
例:
③MSetNX命令
語(yǔ)法:MSetNX key value [key value …]
參數(shù)說(shuō)明:key是指定設(shè)置的鍵,value為對(duì)應(yīng)的值。返回值:如果所有的鍵都被設(shè)置值,返回1;如果有鍵沒(méi)有設(shè)置成功,則返回0
例:
Get bookID1
1001 //返回值
Get bookID5
nil //鍵不存在,返回nil
MGet bookName1 bookName2 bookName //同時(shí)獲取3個(gè)鍵的值
1)”數(shù)據(jù)庫(kù)學(xué)習(xí)”
2)”MongoDB”
3) nil //因?yàn)榍懊嬖O(shè)置了bookName過(guò)期時(shí)間為1秒,所以鍵已經(jīng)過(guò)期,返回nil
Set FirstName Tomcat
ok
Set SecondName “Tomcat2”
ok
Get FirstName
“Tomcat”
get secondName
“Tomcat2”
del FristName SecondName //一次刪除兩個(gè)鍵
(integer) 2 //刪除成功 返回 2
get FirstName
nil
set name “李思”
ok
STRLEN name
(integer) 4 //一個(gè)漢字2個(gè)字節(jié)
STRLEN sex
0 //鍵不存在,返回0
get phoneNumber
(nil) //該鍵對(duì)應(yīng)的值不存在
Append phoneNumber 13812348765 //創(chuàng)建一個(gè)新的鍵值對(duì)
(integer) 11
append phoneNumber 12
(integer) 13 //追加后長(zhǎng)度為13
get phoneNumber
1381234876512
set content “this is a exam!”
ok
GetRange content 0 3 //字符串正向從0開(kāi)始
“this”
GetRange content -5 -2 //從后往前數(shù),截取子字符串
“exam”
GetRange content 10 20 //結(jié)束位置超出了字符串本身的長(zhǎng)度
“exam!”
GetRange content 0 -1 //獲取整個(gè)字符串,結(jié)束位置用-1比較方便,不用使用StrLen獲取整個(gè)字符串長(zhǎng)度
“this is a exam!”
set number 1
ok
GETSET number 2 //給number設(shè)置新值2,并返回舊值”1”
“1”
get number
“2”
set title “l(fā)earning redis”
ok
SETRANGE title 9 “MongoDB”
(integer)15
get title
“l(fā)earning MongoDB”
SETRANGE titles 1 “學(xué)習(xí)”
(integer) 8
get titles
“”\x00\學(xué)習(xí)” //一個(gè)x00表示一個(gè)0
set count 10
ok
Decr count //值減1
(integer) 9
set count “10gg” //非整型
ok
DECR count
(error) ERR value is not an integer or out of range //錯(cuò)誤信息提示
Set count 10
ok
DecrBy count 4 //一次直接減4
(integer) 6
set count 10
ok
Incr count
(integer) 11
get count
“11”
set count 10
ok
IncrBy count 2 //一次增加2
(integer) 12
set price 10.2
ok
IncrByFloat price 0.3 //一次增加0.3
“10.5”
“`
說(shuō)明:當(dāng)滿足一下任意一個(gè)條件時(shí),該命令會(huì)返回錯(cuò)誤信息。
1.key包含非法值(不是一個(gè)String)
2.當(dāng)前的值增加指定數(shù)后,不能解析為一個(gè)雙精度的浮點(diǎn)數(shù)
轉(zhuǎn)載于:https://www.cnblogs.com/woxinyiran12/p/9313993.html
總結(jié)
以上是生活随笔為你收集整理的Redis学习与实战之字符串命令的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: system 无法以 sysdba 登录
- 下一篇: mysql 常用命令与备份恢复 整理