1. 程式人生 > 其它 >Redis五:操作命令彙總

Redis五:操作命令彙總

key操作命令

1:獲取所有鍵(*)

語法:keys pattern

查詢所有符合給定模式pattern(正則表示式)的 key ,時間複雜度為O(N),N為資料庫裡面key的數量。

keys *

支援的正則表達模式:

h?llo 匹配 hello,hallo 和 hxllo

h*llo 匹配 hllo 和 heeeello

h[ae]llo 匹配 hello 和 hallo, 但是不匹配 hillo

h[^e]llo 匹配 hallo, hbllo, … 但是不匹配 hello

h[a-b]llo 匹配 hallo 和 hbllo

2:獲取鍵的總數

dbsize

獲取鍵總數時不會遍歷所有的鍵,直接獲取內部變數,時間複雜度O(1)。

3:查詢鍵是否存在

exists key [key...]

查詢查詢多個,返回存在的個數。

4:刪除鍵:

del key [key...]

可以刪除多個,返回刪除成功的個數。

5:查詢鍵的型別

type key

6:移動鍵到其他的倉庫

move key db

7:查詢鍵的宣告週期(秒)

秒語法:ttl key
毫秒語法:pttl key

"-1"永不過期。

8:設定過期時間

秒語法:expire key seconds
毫秒語法:pexpire key millisconds

9:設定永不過期

persist key

10:更改鍵名稱

rename key newkey

字串String操作命令

字串是Redis中最基本的資料型別,單個數據能儲存的最大空間是512M。

1:存放鍵值

set key value [EX seconds][PX milliseconds][NX|XX]

nx:如果key不存在則建立,xx:如果key存在則修改其值,也可以直接使用setnx/setex命令。

2:獲取鍵值

get key

3:值遞增/遞減

如果字串中的值是數字型別的,可以使用incr命令每次遞增,不是數字型別則報錯。

incr key

一次想遞增N用incrby命令,如果是浮點型資料可以用incrbyfloat命令遞增。

同樣,遞減使用decr、decrby命令。

4:批量存放鍵值

mset key value [key value...]

5:批量獲取鍵值

mget key [key...]

Redis接收的是UTF-8的編碼,如果是中文一個漢字將佔3位返回。

6:獲取值長度

strlen key

7:追加內容

append key value

向鍵值尾部新增,如上命令執行後由1變成123

8:獲取部分字元

getrange key strat end

集合操作命令

集合型別和列表型別相似,只不過是集合是無序且不可重複的。

集合Set

1:儲存值

sadd key member [member...]

這裡有八個值,其中有兩個java,會去重只儲存七個

2:獲取元素

獲取所有元素語法:smembers key

隨機獲取元素語法:srandmember langs count

3:判斷集合是否存在元素

sismember key member

4:獲取集合元素個數

scard key

5:刪除集合元素

srem key member [member...]

6:彈出元素

spop key [count]

有序集合sorted set

和列表的區別:

  • 列表使用連結串列實現,兩頭快,中間慢。有序集合是散列表和跳躍表實現的,即使讀取中間的元素也比較快。
  • 列表不能調整元素位置,有序集合能。
  • 有序集合比列表更佔記憶體。

1:儲存值

zadd key [NX|XX] [CH] [INCR] score member [score member …]

2:獲取元素分數

語法:zscore key member

獲取排名範圍排名語法:zrange key start stop [WITHSCORES]

獲取所有,沒有分數。

獲取所有,以及分數。

獲取指定分數範圍排名語法:zrangebyscore key min max [WITHSCORES] [LIMIT offset count]

3:增加指定元素分數

語法:zincrby key increment member

4:獲取集合元素個數

語法:zcard key

5:獲取指定範圍分數元素個數

語法:zcount key min max

6:刪除指定元素

語法:zrem key member [member …]

7:獲取元素排名

語法:zrank key member

列表List操作命令

列表型別是一個有序的欄位串列表,內部是使用雙向連結串列實現,所有可以向兩端操作元素,獲取兩端的資料速度快,通過索引到具體的行數比較慢。

列表型別的元素是有序且可以重複的。

1:儲存值

左端存值語法:lpush key value [value …]

右端存值語法:rpush key value [value …]

索引存值語法:lset key index value

2:彈出元素

左端彈出語法:lpop key

右端彈出語法:rpop key

3:獲取元素個數

語法:llen key

4:獲取列表元素

兩邊獲取語法:lrange key start stop

獲取所有

從右端索引

索引獲取語法:lindex key index

從右端獲取

5:刪除元素

根據值刪除語法:lrem key count value

刪除所有對應值

從左端刪除前count個

從右端刪除前count個

範圍刪除語法:ltrim key start stop

雜湊Hash操作命令

redis字串型別鍵和值是字典結構形式,這裡的雜湊型別其值也可以是字典結構。

1:存放鍵值

單個語法:hset key field value

多個語法:hmset key field value [field value …]

不存在時語法:hsetnx key field value

2:獲取欄位值

單個語法:hget key field

多個語法:hmget key field [field …]

獲取所有鍵與值語法:hgetall key

獲取所有欄位語法:hkeys key

獲取所有值語法:hvals key

3:判斷欄位是否存在

語法:hexists key field

4:獲取欄位數量

語法:hlen key

5:遞增/減

語法:hincrby key field increment

6:刪除欄位

語法:hdel key field [field …]