[redis資料結構]之 list類型

來源:互聯網
上載者:User

標籤:redis 資料結構 list

    redis中的list集合資料類型,是一種雙向鏈表的結構,list存在的元素是任意的string類型。那麼redis是如何管理和操作list集合資料的呢,下文將闡述redis list集合的基本文法使用:

    1、添加/建立一個list對象

# 分為棧式和隊列兩種添加文法1:lpush [list集合] [元素] # 棧式添加元素,將list集合看成是一個棧類型,先進後出;範例:lpush list1 hello      lpush list1 world闡述:遍曆集合結果為:world, hello;也就是先進後出文法2:rpush [list集合] [元素] # 隊列式添加元素,先進先出範例:rpush list2 hello      rpush list2 world闡述:遍曆集合結果為:hello, world,先進先出,保持插入的順序

    2、遍曆list集合元素

# 遍曆都是從頭部到尾部的過程文法:lrange [集合] [開始索引] [結束索引]範例:lrange list1 0 -1 # 結果為world,hello       lrange list2 0 -1 # 結果為hello, world闡述:索引位置是從0開始,-1表示最後一個元素索引

    3、擷取某個索引的集合元素

文法:lindex [list集合] [索引]範例:lindex list3 0 # 如果不存在,返回nil,否則返回該索引位置的元素

    4、修改某個索引位置的集合元素

# 修改指定索引位置的元素文法:lset [list集合] [索引] [新元素]範例:lset list1 0 Hello       lrange list1 0 -1 # 之前0的位置是world,現在變成Hello

    5、擷取list集合的大小

文法:llen [list集合]範例:llen list1 # 返回集合大小,2

    6、插入某個元素

#插入元素不是通過索引來完成的,而是通過指定某個元素值的前,後插入文法:linsert [list集合] [before | after] [元素] [待插入的元素]# 假設list4={‘hello‘,‘world‘,‘hello‘}範例:linsert list4 before hello wang1       linsert list4 after hello wang2闡述:list4集合中有兩個hello元素,每次僅僅匹配一個,從list開頭匹配。在執行before時,得到結果為{‘wang1‘,‘hello‘,‘world‘,‘hello‘};執行after時,{‘wang1‘,‘hello‘,‘wang2‘,‘world‘,‘hello‘}.

    7、擷取某個區間的元素列表

# 截取結合指定索引區間的元素,區間外的元素刪除文法:ltrim [list集合] [開始索引] [結束索引]範例:ltrim list4 0 1 闡述:返回截取後的集合元素大小,遍曆結果為{‘wang1‘,‘hello‘}

    8、輔助方法

文法:rpoplpush [list集合1] [list集合2]範例:rpoplpush list1 list2闡述:從尾部刪除list1中的一個元素,將其棧式插入到list2中,並返回list1刪除的元素。相當於執行rpop list1,lpush list2

    9、整體結構分析

    由於list結構是雙向鏈表結構,那麼充頭部插入或者從尾部差多都是OK的,lpush頭部插入、lpop頭部刪除、rpush尾部插入、rpop尾部刪除、lrange都是頭部到尾部的遍曆方式。

    結構圖如下:

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/48/67/wKiom1QHxWaiGmiEAADBLxhKA4Y187.jpg" title="redis.png" alt="wKiom1QHxWaiGmiEAADBLxhKA4Y187.jpg" />

   

本文出自 “java程式冥” 部落格,請務必保留此出處http://793404905.blog.51cto.com/6179428/1548586

[redis資料結構]之 list類型

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.