1. 程式人生 > >Redis數據結構(四)

Redis數據結構(四)

方式 lpush alt 擴展 操作 art 中間 star range

存儲list:
list存儲方式采用頭和尾插入的方式,這樣效率快,如果沒有這個插入的數據,redis自己會創建這個數據,如果是中間插入的話,采用list方式效率就會很慢。

ArrayList使用數組方式:
采用索引的方式,去查詢的速度是非常快的,新增和刪除操作,涉及到位移操作,所以比較慢,
LinkedList使用雙向鏈接方式:
每個元素都記錄了前後元素的指針,插入和刪除操作時候,只是改變了前後元素的指針操作即可,速度就會非常快了。
(1)雙向鏈表插入數據
(2)雙向鏈表刪除數據

存儲list常用命令:
(1)兩端添加
鏈表左端添加:
語法:lpush [key][value][value]
lpush mylist a b c
語法:rpush [key][value][value]
lpush mylist2 1 2 3
(2)查看列表
語法:lrange [table][start][end] (從零開始計數,負數從表尾開始)
lrange mylist 0 5
lrange mylist2 0 -2

(3)兩端彈出
從列表中彈出數據,這時列表中就沒有數據了
左端彈出:
lpop mylist
右端彈出:
rpop list
(4)獲取列表元素個數
左端查看:
llen mylist
(5)擴展命令
僅在存在的表頭插入數據,不存在這個表,就不會插入數據了。
lpushx mylist x
rpushx mylist2 x
刪除命令
自動遍歷數據,然後從頭開始刪除,規定個數的數據
lrem mylist3 2 3 從頭刪除2個3數據
從尾往上刪除
rrem mylist3 -2 1 從後往前刪除兩個1
插入元素
lset mylist 3 aaa 在第三個元素前添加‘aaa’
在元素前插入數據
創建數據:
lpush mylist4 a b c
lpush mylist4 a b c
在b前插入數據
linsert mylist4 before b 11
在b後插入數據
linsert mylist4 after b 22

尾部元素砍出,並添加到頭部
創建數據
lpush mylist5 1 2 3
lpush mylist6 a b c
數據處理
rpoplpush mylist5 mylist6
應用在消息隊列當操作中。

技術分享

Redis數據結構(四)