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 …]