首頁 > 軟體

Redis不同資料型別的命令語句詳解

2022-10-12 14:02:12

一、String

String是Redis最基本的型別,最大能儲存512MB的資料,String型別是二進位制安全的,即可以儲存人了資料型別,比如數位、圖片、序列化物件等

Ⅰ、set、get、append、strlen、exists

append key value
#追加鍵值,並返回追加後的長度(若鍵不存在,則相當於建立鍵)
exists key [key...]
#判斷該鍵是否存在,存在返回1,否則返回0
set key value [expiration EX seconds|PX milliseconds] [NX|XX]
#建立鍵
get key
#檢視鍵值
strlen key
#獲取指定key的字元長度

Ⅱ、incr、decr、incrby、decrby

需要值為整數,否則會報錯

incr key
#鍵值增1
decr key
#鍵值減1
incrby key increment
#鍵值增加指定值
decrby key increment
#鍵值減少指定值

Ⅲ、getset、setnx

GETSET key value
#獲取key值並返回,同時給key設定新值
 
SETNX key value
#不存在鍵的話執行set操作,存在的話不執行

Ⅳ、setex、ttl

setex key seconds value
#設定指定key的過期時間為指定值
 
ttl key  
#tt1命令檢視指定Key的剩餘存活時間(秒數),0表示已經過期,-1表示永不過期。獲取已過
期的Key將返回(nil)

Ⅴ、mget、mset、msetnx

MSET key value [key value …]
#批次設定鍵-值對
 
MGET key [key …]
#批次獲取鍵值對
 
MSETNX key value [key value …]
#批次設定鍵值對,都不存在就執行並返回1;只要有一個存在就不執行並返回0

二、List

列表的元素型別為String,按照插入順序在列表的頭部和尾部新增元素

Ⅰ、lpush、lpushx、lrange

LPUSH key value [value …]
#在頭部(左側)依次插入列表元素 
 
LPUSHX key value
#鍵必須存在才能執行,在頭部插入元素值並返回並返回列表元素數量
 
LRANGE key start stop
#取從位置索引start到位置索引stop的所有元素(所以以0開始)
lrange key 0 -1 
#展示所有

Ⅱ、lpop、llen

lpop key
#移除並返回鍵的第一個元素
 
llen key 
#獲取表中元素數量

Ⅲ、lrem、lset、lindex、ltrim

lrem key count value
#從頭部開始刪除count個為value的元素,並返回實際刪除數量
lset key index value
#將位置索引為index的元素設定新值value
lindex key index
#獲取索引為index的元素
ltrim key start stop
#僅保留從位置索引start到索引stop的元素

 lrem刪除一個符合value為a的值

lset將索引為1(從0開始,即第二個)的元素替換為新值a,獲取索引為2的元素

 只保留索引0~2的元素

 Ⅳ、linsert

LINSERT key BEFORE|AFTER pivot value
#在元素pivot的前面(做左)或後面(右)插入新元素value

 在c前面插入b

 Ⅴ、rpush、rpushx、rpop、rpoplpush

RPUSH key value [value …]
#在列表的尾部依次插入value
 
RPUSHX key value
#key必須存在才可執行,將value從尾部插入,並返回所有元素數量
 
RPOP key
#在尾部彈出(移除)一個元素,並返回該元素
 
RPOPLPUSH source destination
#在key1的尾部彈出一個元素並返回,將它插入key2的頭部

 rpush從test尾部依次插入jklmn

rpop尾部第一個元素 

 將test的尾部元素m彈出,同時再插入到test1的頭部(原子性的完成這兩步操作),也可以作用在test自己身上,將最後一個元素提到第一個

三、Hash

Hash用於儲存物件,可以採用這樣的命名方式(hash格式):物件列別和ID構成鍵名,使用欄位表示物件的屬性,而欄位值則儲存屬性值

Ⅰ、hset、hget、hexisits、hdel、hlen、hsetnx

hset key field value
#建立key
 
hget key field
#獲取key-value
 
hexists key field
#key是否存在
 
hdel key field [field ...]
#刪除指定key
 
hlen key
#key欄位數
 
hsetnx key field value
#不重複的建立key,即只有指定的key不存在才可以建立

Ⅱ、hincrby

hincrby key field increment
#給指定的hash型別(整數)值指定增長值

 key hash kk欄位設值為4,hincrby1後kk值為5

Ⅲ、hgetall、hkeys、hvals、hmset、hmget

hgetall key
#輸出指定欄位的所有欄位以及值
 
hkeys key
#輸出指定鍵中的所有欄位名
 
hvals key
#輸出指定鍵中的所有欄位值
 
hmset key field value [field value ...]
#一次性設定多個欄位
 
hmget key field [field ...]
#一次性獲取多個欄位

四、set

無序集合,元素型別為string型別,元素具有唯一性,不允許存在重複的成員。多個集合型別之間可以進行並集、交集和差集運算

應用範圍:

可以使用Redis的Set資料型別跟蹤一些唯一性資料,比如存取某一部落格的唯一IP地址資訊。對於此場景,我們僅需在每次存取該部落格時將存取者的IP存入Redis中,Set資料型別會自動保證IP地址的唯一性。充分利用Set型別的伺服器端聚合操作方便、高效的特性,可以用於維護資料物件之間的關聯關係。比如購買某一電子裝置的客戶ID被儲存在一個指定的Set中,而購買另外一種電子產品的客戶ID被儲存在另外一個Set中,如果此時我們向獲取有哪些客戶同時購買了這兩種商品時,Set的intersections命令就可以充分發揮它的方便和效率的優勢

Ⅰ、sadd、smembers、scard、sismember

sadd key member [member ...]
#建立鍵並加入member
 
smembers key
#檢視指定key中所有的members
 
scard key
#檢視指定key中members個數
 
sismember key member
#判斷指定key中的member是否存在

建立key-set,members為qq、ww、ee、rr,判斷qq在其中返回1,判斷pp不在其中返回0 

 Ⅱ、spop、srem、srandmember、smove

spop key [count]
#隨機的移除並返回key中的某一成員
 
srem key member [member ...]
#從指定key中移除指定member
 
srandmember key [count]
#隨機輸出指定數量的members
 
smove source destination member
#將一個member移動到另一個key中

 五、Sorted Set

有序集合,元素型別為string,元素具有唯一性,不能重複。每個元素都會關聯一個double型別的分數score(表示權重),可以通過權重的大小排序,元素的score可以相同

應用範圍:

可以用於一個大型線上遊戲的積分沛航胖,每當玩家的分數發生變化時,可以執行ZADD命令更新玩家的分數,此後再通過ZRANGE命令獲取積分TOP10的使用者資訊。當然我們也可以利用ZRANK命令通過usename來獲取玩家的排行資訊。最後我們將組合使用ZRANGE和ZRANK命令快速的獲取和某個玩家積分相近的其他使用者的資訊。Sorted-Set型別還可用於構建索引資料

Ⅰ、zadd、zcard、zcount、zrem、zincrby、zscore、zrange、zrank

zadd key [NX|XX] [CH] [INCR] score member [score member ...]
#向有序集合內新增members,或更新已存在的score
 
zcard key
#獲取key中的members數量
 
zcount key min max
#輸出滿足 min <= score <= max 條件的成員數量
 
zrem key member [member ...]
#刪除成員member並返回操作後的成員數量
 
zincrby key increment member
#讓指定的成員以指定increment增加
 
zrange key start stop [WITHSCORES]
#檢視成員,從0開始
 
zrank key member
#獲取成員的索引位置

Ⅱ、zrangebyscore、zremrangebyrank、zremrangebyscore

zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
#獲取滿足min <= score <= max 的成員
 
zremrangebyrank key start stop
#刪除滿足min <= rank <= max 的成員
 
zremrangebyscore key min max
#刪除滿足min <= score <= max 的成員

Ⅲ、zrevrange、zrevrangebyscore、zrevrank

zrevrange key start stop [WITHSCORES]
#以位置索引從高到低的方式獲取並返回此區間內的成員
 
zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count]
#獲取滿足 min <= score <= max 的成員
 
zrevrank key member
#獲取指定成員的索引位置

到此這篇關於Redis不同資料型別的命令語句詳解的文章就介紹到這了,更多相關Redis命令語句內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com