Redis五大型別常用命令

2021-09-25 13:55:59 字數 2488 閱讀 5801

hash型別

list型別

set型別

zset有序集合

string資料結構是簡單的key-value型別,value其實不僅可以是string,也可以是數字。 常規key-value快取應用; 常規計數:微博數,粉絲數等。

redis中字串的儲存方式都是以二進位制的方式儲存的。

用於對 key 所儲存的字串值,獲取指定偏移量上的位(bit),當偏移量 offset 比字串值的長度大,或者 key 不存在時,返回 0 。

用於對 key 所儲存的字串值,設定或清除指定偏移量上的位(bit),返回的結果是該位上原來的bit值。比如我們設定 k1為a,k2為c,a對應的ascii碼為97(01100001),c對應的ascii碼為99(01100011),相差了乙個1,如此我們就可以通過setbit來調整

前面的上線次數統計例子,即使執行 10 年,占用的空間也只是每個使用者 10*365 位元位(bit),也即是每個使用者 456 位元組。對於這種大小的資料來說, bitcount 的處理速度就像 get 和 incr 這種 o(1) 複雜度的操作一樣快。

對乙個或多個儲存二進位制位的字串 key 進行位元操作,並將結果儲存到 destkey 上。bitop 命令支援 and(與) 、 or(或) 、 not(非) 、 xor(異或)運算。比如a 01100001和c 01100011進行相關運算

not運算注意引數個數

返回字串裡面第乙個被設定為1或者0的bit位。

返回乙個位置,把字串當做乙個從左到右的位元組陣列,第乙個符合條件的在位置0,其次在位置8,等等。還是以a為例01100001

hash 是乙個 string 型別的 field 和 value 的對映表,hash 特別適合用於儲存物件,後續操作的時候,你可以直接僅僅修改這個物件中的某個欄位的值。

在實際開發過程中我們肯定會碰到很多需要儲存物件的需求,此時hash就比較合適了。hash 是乙個string型別的field和value的對映表,hash特別適合用於儲存物件。比如我們可以 hash 資料結構來儲存使用者資訊,商品資訊等等。

redis 中每個 hash 可以儲存 232 - 1 鍵值對(40多億)。

list 就是鍊錶,redis list 的應用場景非常多,也是redis最重要的資料結構之一,比如微博的關注列表,粉絲列表,訊息列表等功能都可以用redis的 list 結構來實現。

redis list 的實現為乙個雙向鍊錶,即可以支援反向查詢和遍歷,更方便操作,不過帶來了部分額外的記憶體開銷。

另外可以通過 lrange 命令,就是從某個元素開始讀取多少個元素,可以基於 list 實現分頁查詢,基於redis 實現簡單的高效能分頁,可以做類似微博那種下拉不斷分頁的東西(一頁一頁的往下走),效能高。

乙個列表最多可以包含 232 - 1 個元素 (4294967295, 每個列表超過40億個元素)。

list列表是有序集合,可以儲存重覆記錄,在redis中的set集合是無序的,不可以儲存重覆記錄的。

set 對外提供的功能與list類似是乙個列表的功能,特殊之處在於 set 是可以自動排重的。

當你需要儲存乙個列表資料,又不希望出現重複資料時,set是乙個很好的選擇,並且set提供了判斷某個成員是否在乙個set集合內的重要介面,這個也是list所不能提供的。可以基於 set 輕易實現交集、並集、差集的操作。

比如:在微博應用中,可以將乙個使用者所有的關注人存在乙個集合中,將其所有粉絲存在乙個集合。redis可以非常方便的實現如共同關注、共同粉絲、共同喜好等功能。

集合中最大的成員數為 232 - 1 (4294967295, 每個集合可儲存40多億個成員)。

redis五大型別以及相關命令

連線雲伺服器後,輸入命令redis cli進入redis.string set u 5333 將字串u設定為5333 getrange u 0 1 獲取儲存在keyu中全部字串 incr u 將u增1 decr u 將u減1 incrby u 3 將u增加3 decrby u 3 將u減去3 inc...

Redis五大型別之String操作

檢視和連線redis命令列 redis cli help 檢視所有string型別的操作 help stringstring型別分為三種 1.string 2.number 3.bit 應用場景 秒殺 incr 分布式鎖setnx 一 string 型別 1 插入資料 set k1 aa 2 如果k...

05 redis五大型別string

string型別 字串 127.0.0.1 6379 set key1 v1 設定值 ok127.0.0.1 6379 get key1 取值 v1 127.0.0.1 6379 keys 檢視所有值 1 key1 127.0.0.1 6379 exists key1 key是否存在 integer...