redis的String型別以及其操作

2022-10-11 04:48:12 字數 4413 閱讀 3502

redis的資料型別

string型別以及操作

string是最簡單的資料型別,乙個key對應乙個value,string型別是二進位制安全的。redis的string可以包含任何資料,比如jpg或者序列化物件

set設定key對應的值為string型別的value

例如:我們新增乙個name為lijie的鍵值對

127.0.0.1:6379> set

name lijie

ok127.0.0.1:6379> get

name

"lijie

"127.0.0.1:6379> set

name lambrother

ok127.0.0.1:6379> get

name

"lambrother

"

我們再次設定name為lambrother,後面發現將前面的lijie覆蓋了。

setnx

設定key對應的值為string型別的value,如果key已經存在,返回0,nx是not exist的意思

例如我們新增乙個name = lijie_new的鍵值對

127.0.0.1:6379>setnx name lijie_new

(integer)

0127.0.0.1:6379> get

name

"lambrother

"127.0.0.1:6379> setnx age 20

(integer)

1127.0.0.1:6379> get

age "20

"

setex

設定key對應的值為string型別的value,並指定鍵值對的有效期

例如:我們新增乙個haircolor = red的鍵值對,並制定有效期為10秒

127.0.0.1:6379> setex haircolor 10

red

ok127.0.0.1:6379> get

haircolor

"red

"10秒後

127.0.0.1:6379> get

haircolor

(nil) nil指的是空的意思。

127.0.0.1:6379>setnx haircolor red

(integer) 1//

驗證了前面的鍵值對失效了。

setrange

設定指定key的value值的子字串

例如:我們希望將lijie的126郵箱替換成為gmail郵箱

127.0.0.1:6379> set

email [email protected]

ok127.0.0.1:6379> get

email

"[email protected]

"127.0.0.1:6379> setrange email 6 li-jie.me //

6代表的是原來字串的開始替換位置的下標

(integer) 20

//20 代表的是新字串的長度

127.0.0.1:6379> get

email

"[email protected]"//

觀察發現替換後的字串如果長度沒有原來字串長,會將原來字串的剩餘依舊拼接

mset

一次設定多個key的值,成功返回ok表示所有的值都設定了,失敗返回0表示沒有任何值被設定

127.0.0.1:6379>mset key1 lijie1 key2 lijie2

ok127.0.0.1:6379> get

key1

"lijie1

"127.0.0.1:6379> get

key2

"lijie2

"

msetnx

一次設定多個key的值,成功返回ok表示所有的值都設定了,失敗返回0表示沒有任何值被設定,但是不會覆蓋已經存在的key

127.0.0.1:6379>msetnx key3 lambrother key4 [email protected] key2 lijie

(integer)

0127.0.0.1:6379> get

key3

(nil)

127.0.0.1:6379> get

key4

(nil)

127.0.0.1:6379>msetnx key3 lambrother key4 [email protected] key5 lijie

(integer)

1127.0.0.1:6379> get

key3

"lambrother

"127.0.0.1:6379> get

key4

"[email protected]

"127.0.0.1:6379> get

key5

"lijie

"127.0.0.1:6379>

getset

設定key的值並返回舊的key值

127.0.0.1:6379> get

key5

"lijie

"127.0.0.1:6379>getset key5 haha

"lijie

"127.0.0.1:6379> get

key5

"haha

"127.0.0.1:6379>

getrange

獲取子字串

127.0.0.1:6379> get

email

"[email protected]

"127.0.0.1:6379> getrange email 05//

獲取email的value的0索引到5(包括5)索引的值

"lijie@

"127.0.0.1:6379>

mget

批量獲取

127.0.0.1:6379> mget key1 key2 key3 key4 key5 key 6

1) "

lijie1

"2) "

lijie2

"3) "

lambrother

"4) "

[email protected]

"5) "

haha"6

) (nil)

7) (nil)

127.0.0.1:6379>

incr

對key的值做加加操作,並返回新的值

127.0.0.1:6379> set key6 30

ok127.0.0.1:6379> get

key6"30

"127.0.0.1:6379>incr key6

(integer)

31127.0.0.1:6379>incr key6

(integer)

32127.0.0.1:6379> get

key6"32

"127.0.0.1:6379>

incrby

同incr類似,區別在於必須指定增量

127.0.0.1:6379> get

key6"37

"127.0.0.1:6379> incrby key6 5

(integer)

42127.0.0.1:6379> incrby key6 -8

(integer)

34127.0.0.1:6379>

decr

對key的值做減減操作

127.0.0.1:6379>decr key6

(integer)

33127.0.0.1:6379>decr key6

(integer)

32

decrby

與decr類似,指定減量

127.0.0.1:6379> decrby key6 8

(integer)

24127.0.0.1:6379> decrby key6 -7

(integer)

31

127.0.0.1:6379> get

name

"lambrother

"(integer)

14127.0.0.1:6379> get

name

"lambrother.net

"

strlen

取指定key的value的長度

127.0.0.1:6379>strlen name

(integer)

14

redis語法 String型別

127.0.0.1 6379 set k1 v1 ok127.0.0.1 6379 get k1 v1 127.0.0.1 6379 del k1 integer 1 127.0.0.1 6379 get k1 nil 127.0.0.1 6379 set k2 v2 ok integer 9 12...

redis的資料型別 string

1.string型別 2.方法 1.set 設定key對應的值為string 型別的 value。例 set name cl 設定name 的值為cl 成功返回 ok 多次設定 值會覆蓋 2.setns 設定key對應的值為string 型別的 value,如果值已經存在,返回0 設定失敗。使用這個...

redis資料型別(String)

常用string操作命令 set keyvalue 設定值 getkey 獲取值 value 追加值 incr key 原子操作,自動加1 value必須為inter型別的字元。decr key 原子操作,自動減1 value必須為inter型別的字元。incrby key num 自動增加指定值 ...