經過鏈表結構能夠模仿隊列結構與堆棧結構;關於隊列結構和堆棧結構能夠查看 【SPL標準庫專題(6)】Datastructures:SplStack & SplQueuesegmentfault
lpush key value1 value2 value3...
做用: 把值插入到鏈表頭部安全
rpush key value1 value2 value3...
127.0.0.1:6379> rpush zimu a b c d e f (integer) 6
做用: 把值插入到連接尾部code
rpop key
做用: 返回並刪除鏈表尾元素索引
lpop key
做用: 返回並刪除鏈表頭元素隊列
lrem key count value
做用: 從key鏈表中刪除 value值
注: 刪除count的絕對值個value後結束
Count > 0 從表頭刪除
Count < 0 從表尾刪除rem
lrem key 2 b 從表頭開始找b,找到就給刪除,刪除2個;
lrem key -2 b 從表尾開始找b,找到就給刪除,刪除2個;get
ltrim key start stop
做用: 剪切key對應的鏈表,切[start,stop]一段,並把該段從新賦給keyast
lindex key index
做用: 返回index索引上的值,
如 lindex key 2im
llen key
做用:計算連接表的元素個數鏈表
linsert key after|before search value
做用: 在key鏈表中尋找'search',並在search值以前|以後,插入value
注: 一旦找到一個search後,命令就結束了,所以不會插入多個value
127.0.0.1:6379> linsert lb1 before c aa #在鏈表lb1的元素c前面插入aa
rpoplpush source dest
做用: 從鏈表source的尾部拿出,放在鏈表dest的頭部,並返回該單元值
場景: 雙鏈表完成安全隊列
業務邏輯:
1:Rpoplpush task bak
2:接收返回值,並作業務處理
3:若是成功,rpop bak 清除任務. 如不成功,下次從bak表裏取任務
brpop/blpop key timeout
做用:等待彈出key的尾/頭元素,
Timeout爲等待超時時間
若是timeout爲0,則一直等待
場景: 長輪詢Ajax,在線聊天時,可以用到
127.0.0.1:6379> brpop lb2 30 #30秒內監聽lb2隊列,一旦有插入新的隊列元素就立刻彈出,並返回相應信息; 1) "lb2" 2) "222" (8.55s)
lrange key start stop
做用: 返回鏈表中[start ,stop]中的元素規律: 左數從0開始,右數從-1開始lrange key 0 -1 查出所有鏈表結構