Redis資料型別及使用場景

2021-09-19 21:12:16 字數 3267 閱讀 2076

redis支援常見的資料型別,現在是被廣泛用在各大公司的內部,它可以做的東西很多,不過要先了解下他提供的基本資料型別與常見操作。接下來一起看看把。

最基礎的資料型別,首先key是字串型別,其它的資料型別都是在字串的基礎之上構建的。

set命令

批量設定和獲取命令,在操作多個key的時候可以節省網路傳輸時間

其它字串命令

incr 對值進行加1操作,如果不是整數,返回錯誤,如果不存在按照從0開始

decr 同incr,但是是減1操作

incrby,decrby ,增加減去指定的數

使用場景

字串的使用空間非常大,可以結合字串提供的命令充分發揮自己的想象力

hash一般也被稱為字典,redis自己也可以作為乙個比較大的hash儲存。

hset key field value

hsetnx key field value //與setnx命令一樣,不存在則設定值,用於新增,作用在field上面

hget key field //獲取值

hdel key field // 刪除值

hlen key //子酸field的個數

hmset key field value [filed value] //批量設定field-value

hexists key field //判斷filed是否存在

hkeys key //獲取所有的field

hvals key //獲取所有的value

hgetall key //獲取所有的field-value ,如果元素數較多會存在阻塞redis的可能

hincreby key filed

和字串很像,基本上redis對字串操作的命令,redis的hash一般也存在,不過在命令前多個乙個h。

一些關係型資料庫中不是特別複雜的表,也無需複雜的關係查詢,可以使用redis的hash來儲存,也可以用hash做表資料快取。

列表用來儲存多個有序的字串,乙個列表最多可以儲存2^32 - 1個元素,在redis中可以對列表的兩端插入push和彈出pop,還可以取指定範圍的元素。

rpush key value [value...] //從右插入元素

lpush key value [value...] //從左邊插入元素

lrange key start end //獲取指定範圍的元素列表

lindex key index //獲取列表指定索引下標的元素

llen key //獲取列表的長度

lpop key // 從列表左側彈出元素

rpop key // 從列表右側彈出元素

lrem key count value //從列表中找到等於value的元素,並進行刪除,根據count的不同有不同的情況

lset key index newvalue //修改指定索引下標的元素

blpop key timeout //阻塞式左彈出key

brpop key timeout //阻塞式右彈出key

使用場景:

幾個口訣:

lpush + lpop 棧

lpush + rpop 佇列

lpush + ltrim = 有限集合

lpush + brpop = 訊息佇列

集合是用來儲存多個字串的元素,內部不允許有重複遠古三,集合內的元素是無序的,redis支援集合的增刪改查,同時支援多個集合取交集,並集,差集

sadd key value [value...] //新增元素

srem key value [value...] //刪除元素

scard key //計算元素的個數

sismember key value //判斷元素是否在集合中

srandmember key [count] //隨機從集合中返回指定個數的元素,不寫預設為1

spop key //從集合隨機取出元素

smembers key //獲取集合內的所有元素

sinter key1 key2 //求集合的交集

sunion key1 key2 //求集合的並集

sdiff key1 key2 //求集合的差集

使用場景:

它保留了元素不能重複的特性,並且元素是有序的。

zadd key score member  //score是可以重複的,新增key的時候指定分數

zcard key //計算成員個數

zscore key member //計算某個成員的分數

zrank key member //計算成員排名,從低到高

zrevrank key member //計算成員排名,從高到低

zrem key member [member...] //刪除成員

zincrby key increnment member //增加成員的分數

zrange key start end [withscores] //從低到高返回指定排名的分數

zrevrange key start end [withscores] //從高到低返回

zrangebyscore key min max [withscores] [limit offset count] //按照分數從低到高返回

zrevrange score key min max [withscores] [limit offset count] //按照分數從高到低返回成員

withscore 代表返回的時候帶上成員的分數

...還有求交集,並集等操作

使用場景:

redis可以做

簡單提到這裡,redis的資料型別比較豐富,使用的場景很多,先在心裡有個數,後面用的時候心裡才有底。

Redis資料型別及使用場景

wqtech閱讀 2936 摘要 redis相比其它的kv資料庫,其一大特點是支援豐富的資料型別.它一共支援5種資料型別,下面逐一介紹這5種資料型別及其使用場景.redis相比其它的kv資料庫,其一大特點是支援豐富的資料型別。它一共支援5種資料型別,下面逐一介紹這5種資料型別及其使用場景和內部實現方...

Redis資料型別及使用場景

redis 除了這 5 種資料型別之外,還有 bitmaps hyperloglogs streams 等。這是最簡單的型別,就是普通的 set 和 get,做簡單的 kv 快取。set college szu 複製 這個是類似 map 的一種結構,這個一般就是可以將結構化的資料,比如乙個物件 前提...

Redis的資料型別及使用場景

儲存的時候key和value都是string,value支援string hash list set zset等資料結構。redis內部的key value通過乙個redisobject物件來儲存,type表示value的型別 string等 encoding表示儲存方式 raw int等 結構 k...