redis基礎資料型別String(字串)

2021-10-25 15:53:22 字數 3269 閱讀 3671

常用命令

命令說明

set key value

設定值get value

獲取值exists key

判斷1個key是否存在

追加字串,key不存在時,即為set key

strlen key

獲取字串的長度

incr key

自增1decr key

自減1incrby key n

自增ndecrby key n

自減ngetrange key n1 n2

獲取key對應字串 [n1,n3]

getrange key 0 -1

獲得key對應全部內容,相當於 get key

setrange key offset value

將key對應字串從 offset 開始的n(value長度)個字元替換為 value

setex key n value

設定key值為value,n秒後過期

setnx key value

不存在時建立(存在時建立失敗)

mset k1 v1 k2 v2 k3 v3 …

同時設定多個值

mget k1 k2 k3 …

同時獲取多個值

msetnx k1 v1 k2 v2 …

同時設定多個值(不存在,原子操作)

mset object:i:filed1:value1 …

設定object物件,id為i,屬性filed1對應值為value1

mget object:i:filed1 onject:i:filed2 …

獲取id為 i 的object物件的屬性filed1和filed2

getset key value

獲取key原來的值,再設定新值

示例

[root@vm-0-10-centos ~]# redis-cli -p 6379

127.0.0.1:6379> set mykey hello

ok127.0.0.1:6379> get mykey

"hello"

127.0.0.1:6379> exists key1

(integer) 0

127.0.0.1:6379> exists mykey

(integer) 1

(integer) 11

127.0.0.1:6379> get mykey

"hello-world"

127.0.0.1:6379> strlen mykey

(integer) 11

127.0.0.1:6379> set views 1

ok127.0.0.1:6379> get views

"1"127.0.0.1:6379> incr views

(integer) 2

127.0.0.1:6379> incr views

(integer) 3

127.0.0.1:6379> get views

"3"127.0.0.1:6379> decr views

(integer) 2

127.0.0.1:6379> get views

"2"127.0.0.1:6379> get views

"2"127.0.0.1:6379> incrby views 10

(integer) 12

127.0.0.1:6379> get views

"12"

127.0.0.1:6379> decrby views 4

(integer) 8

127.0.0.1:6379> get views

"8"127.0.0.1:6379> set mykey abcdefgh

ok127.0.0.1:6379> get mykey

"abcdefgh"

127.0.0.1:6379> getrange mykey 0 3

"abcd"

127.0.0.1:6379> getrange mykey 0 -1

"abcdefgh"

127.0.0.1:6379> get mykey

"abcdefgh"

127.0.0.1:6379> setrange mykey 3 ***

(integer) 8

127.0.0.1:6379> get mykey

"abc***gh"

127.0.0.1:6379> set mykey 10 hello

(error) err syntax error

127.0.0.1:6379> setex time 10 hello

ok127.0.0.1:6379> ttl time

(integer) 6

127.0.0.1:6379> exists time

(integer) 0

127.0.0.1:6379> set mykey hello

ok127.0.0.1:6379> get mykey

"hello"

127.0.0.1:6379> setnx mykey world

(integer) 0

127.0.0.1:6379> get mykey

"hello"

127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3

ok127.0.0.1:6379> mget k1 k2 k3

1) "v1"

2) "v2"

3) "v3"

127.0.0.1:6379> msetnx k3 v33 k4 v4

(integer) 0 ## 此處因為k3已經存在,所以會建立失敗

127.0.0.1:6379> mget k1 k2 k3

1) "v1"

2) "v2"

3) "v3"

127.0.0.1:6379> mset user:1:name tony user:1:age 18

ok127.0.0.1:6379> mget user:1:name user:1:age

1) "tony"

2) "18"

127.0.0.1:6379> set mykey hello

ok127.0.0.1:6379> get mykey

"hello"

127.0.0.1:6379> getset mykey world

"hello"

127.0.0.1:6379> get mykey

"world"

Redis 的基礎資料型別

十年河東,十年河西,莫欺少年窮 學無止境,精益求精 正文如下 行吧,那我先從string說起。string 這是最簡單的型別,就是普通的 set 和 get,做簡單的 kv 快取。但是真實的開發環境中,很多仔可能會把很多比較複雜的結構也統一轉成string去儲存使用,比如有的仔他就喜歡把物件或者li...

redis基礎之資料型別 雜湊型別

redis是採用字典結構以鍵值對的形式儲存資料的,而雜湊型別 hash 的鍵值也是一種字典結構,其儲存了字段和字段值的對映,但字段值只能是字串,不支援其他資料型別,也就是說,雜湊型別不能巢狀其他的資料型別。乙個雜湊型別鍵可以包含至多2 32 1個字段。除了雜湊型別,redis的其他資料型別同樣不支援...

redis基礎之資料型別 列表型別

列表型別 list 可以儲存乙個有序的字串列表,常用的操作室向列表兩端新增元素,或者獲得列表的某乙個片段。列表型別內部是使用雙向鍊錶 double linked list 實現的,所有向列表兩端新增元素時間複雜度為o 1 獲取越接近兩端的元素速度就越快。這意味著即使是乙個有幾千萬個元素的列表,獲取頭...