Redis資料型別的常用命令

2021-09-29 04:57:10 字數 3608 閱讀 1559

redis資料型別:資料型別不支援型別巢狀

字串型別

雜湊型別

列表型別

集合型別

有序集合型別

redis命令:key命名可以採用:物件型別:物件id:物件屬性 如:user :1:friends 表示使用者為1的好友列表

全域性相關

keys pattern:獲得符合規則的鍵名列表,pattern支援萬用字元格式,該操作會遍歷redis中所有的鍵,數量較多會影響效能,不建議在生產環境使用

exists key:判斷乙個鍵是否存在,存在返回1,不存在返回0

del key [key …]:刪除鍵,可以刪除乙個和多個,返回被刪除鍵的個數,可以使用 redis-cli del 『redis-cli keys 「user:*」』 來刪除user開頭的所有鍵

type key:獲取鍵的型別

字串型別

set key value:將key的值賦值為value:set name 張三

get key:得到key的值:get name

incr key:將key的值加1,並返回加成功後的值

incrby key increment:可以通過increment引數來指定step。如:incrby num 3 將num 加3

decrby key decriment:根據decriment引數來減少指定的step

incrbyfloat key increment:增加指定浮點數 incrbyfloat num 2.7 增加2.7

strlen key:獲取字串長度

mget key [key …]:同時獲得多個key的值

mset key1 value1 key2 value2:同時設定多個key的值

位操作

雜湊型別

hset key field value:給字段賦值(hset car name bmw)

hget key field:獲取字段值

hmset key field1 value1 field2 value2:批量設值

hmget key filed1 field2:獲取多個欄位的值

hgetall key:獲取key下所有的字段和字段值

hexists key field:判斷字段是否存在

hsetnx key field value:如果欄位不存在時賦值,如果存在,不執行操作

hincrby key field increment:增加數字

hdel key field [field…]:刪除字段(可以刪除多個)

hkeys key, hvals key:只獲取key或者只獲取value

hlen key:獲取key鍵中字段的數量

列表型別:可以儲存乙個有序的字串列表,常用的操作是向列表兩端新增元素,或者獲得列表的某乙個片段

lpush key value[value …] 向列表的左端新增元素,返回值為列表長度

rpush key value[value …] 向列表的右端新增元素,返回值為列表長度

lpop key, rpop key 從列表的左右兩邊彈出元素,被彈出的元素被刪除

llen key:獲取key的長度

lrange key start end:獲取列表片段,包含兩端元素,起始索引為 0,支援負索引,如:-1表示最右邊第乙個元素,-2表示最右邊第二個元素,以此類推, lrange key 0 -1 可以獲取列表中的所有元素,如果start>end 返回空列表,如果end大於length,返回最右邊的元素

lrem key count value:刪除列表中前 count個值為 value的值。針對列表中資料重複的情況

lindex key index:獲取索引為 index的value,如果index為負數,那麼是從最右邊的第 |index|個元素

lset key index value:將索引為index的值設定為value,如果為負數,從最右邊的第 |index|個元素

ltrim key start end: 將原key擷取,只保留start ~ end (閉區間,下標從0開始計算)值的的集合

linsert key before|after pivot value:從左到右的查詢值為 pivot的元素,將value插入到該值的前面或者後面,若pivot不存在,返回-1(失敗)

rpoplpush source destination:將乙個元素列表的值轉入另乙個列表

集合型別:集合中的每個元素都是不相同的,且沒有順序

sadd key member [member …]:向集合中新增元素

srem key member [member …]:刪除集合的中元素

smembers key:獲取key中所有的元素

sismember key member:判斷元素在不在集合中

集合運算:

scard key:獲取集合中元素個數

srandmember key [count]: 隨機獲取集合中的 count 個元素, 如果count大於集合元素,返回所有,不會存在重複的資料。如果count為負數,返回|count|個元素,可能返回相同的元素,如果大於集合的個數,也會返回重複的資料,個數不會少,這是由於集合的儲存型別採用 雜湊表 造成的。

spop key : 隨機彈出乙個元素,無序的

有序集合型別:在集合的基礎上,對集合中的每個元素關聯了乙個分數(分數允許負數)

zadd key score member [score member …]:向有序集合中插入該元素以及該元素的分數

zscore key member: 獲取元素的分數

zrange key start end [withsocores]:和lrange一樣,返回有序集合中的元素,按照分數由低到高的順序,中文按照unicode編碼

zrevrange key start end [withsocores]:和zrange一樣,返回集合中的元素,按照分數的由高到低的順序

zrangebyscore key min max [withsocores] : 返回指定分數區間(包含min和包含max)的元素,如果希望不包含,可在分數前加( 如:zrangebyscore myzset2 (3 10 :返回myzset2中分數大於3且小於10的元素, zrangebyscore myzset2 0 +inf 返回大於0的所有元素, -inf代表負無窮,+inf代表正無窮,

zincrby key increment member:增加member的分數,increment代表增加多少分,負數代表減分

zcard key : 獲取集合中元素的個數

zcount key min max:獲得指定分數範圍的元素個數

zrem key member [member …]: 刪除乙個或多個元素

zremrangebyrank key start end : 按照分數從小到大的順序刪除元素

zremrangebyscore key min max:刪除元素的分數在min和max之間的元素

zrank key member:獲取元素的排名,從小到大

zrevrank key member:獲取元素的排名,從大到小

計算有序集合的交集:zinterstore, 計算並集:zunionstore

Redis資料型別list型別常用命令

列表型別可以儲存乙個有序的字串列表,常用的操作是向列表兩端新增元素,或者獲得列表的某乙個片段。列表型別內部是使用雙向鍊錶實現的,所以列表兩端新增元素是非常快的,獲取越接近兩端的元素速度就越快。通過列表特點可以模擬棧 佇列 社交 的新鮮事,我們關心的只是最新的內容,使用列表型別儲存,即使新鮮事的總數達...

Redis 常用命令,基礎資料型別

redis五大資料型別 string 字串 單個key裡面有單個值 不可重複 重複新增會覆蓋 hash 雜湊 單個key裡面有多個字段 每個字段裡面都有值 不可重複 重複新增沒啥用 list 列表 單個key裡面有多個值 可以重複 set 集合 單個key裡面有多個值 不可重複 重複新增沒啥用 zs...

Redis 簡介 資料型別 常用命令

redis 是屬於乙個開源的基於鍵值對的非關係型資料庫 nosql 最大的特點就是將資料儲存在記憶體中,可以用於訊息佇列和快取,redis 和memcached 不同,redis 支援多種資料型別 string字串 hash list set 集合 zset 有序集合 redis 可以 快取動態資料...