strings 類型
string 類型是二進位安全的。
redis 的 string 可以包含任何資料,比如 jpg 圖片或者序列化的對象。從內部實現來看其實 string 可以看作 byte 數組,最大上限是 1G 位元組
struct sdshdr {
long len;//buf的長度
long free;//buf剩餘可用位元組數
char buf[];//實際的字串內容
};
1:set
設定 key 對應的value(string類型)
> set name larry
ok
2:setnx
即set not exist,如果 key 已經存在,返回 0
> set name larry
ok
>setnx name larry
(integer) 0
3:setex
儲存索引值對,並設定有效期間
>setex name 10 larry
ok
>get name
"larry"
10秒鐘後...
>get name
(nil)
4:setrange
有就替換,沒有就用\x00代替缺少的字元來替換,數字代表開始替換的下標
> get name
"larry"
>setrange name 0 lv
(integer) 5
>get name
"lvrry"
>setrange name 10 lv
"lvrry\x00\x00\x00\x00\x00lv"
5:mset
每次設定多個key值
>mset key1 value1 key2 value2
ok
6:msetnx
一次設定多個 key 的值,具有原子性,同時成功或失敗,失敗返回0,所有操作復原
7:get
根據key擷取值,不存在返回(nil)
>get asdasds
(nil)
8:getset
擷取舊值並設定一個新值,不存在返回(nil)
>get name
"larry"
>getset name lv
"larry"
>get name
"lv"
>getset dsadasd lv
(nil)
9:getrange
根據指定的下標擷取值,負數表示從右邊開始
>getrange 0 1 name
"la"
10:mget
返回多個值,不存在返回(nil)
>get name sdadasd
1)"larry"
2)(nil)
11:incr
加加操作,如果字元不是int型會報錯(error) ERR value is not an integer or out of range
> set age 20
OK
incr age
(integer) 21
12:incrby
加操作
> get age
"21"
> incrby age 5
(integer) 26
13:decr
減減操作
14:decrby
減操作
15:append
追加操作,返回字串長度
>append name lv
(integer) 15
>get name
"larrylv"
16:strlen
返回value的長度