【redis專題(3)】命令語法介紹之list

經過鏈表結構能夠模仿隊列結構與堆棧結構;關於隊列結構和堆棧結構能夠查看 【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 查出所有鏈表結構

相關文章
相關標籤/搜索