常用命令
命令說明
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 獲取越接近兩端的元素速度就越快。這意味著即使是乙個有幾千萬個元素的列表,獲取頭...