Redis資料類型--List,redis--list
Redis列表是簡單的字串列表,按照插入順序排序。
你可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)
LPUSH 命令插入一個新的元素到頭部,
RPUSH插入一個新元素到尾部.
當一個這兩個操作在一個空的Key上被執行的時候一個新的列表被建立。
相似的,如果鏈表中所有的元素均被移除,那麼該鍵也將會被從資料庫中刪除。這是非常方便的語義,因為他們被調用使用一個空列表完全就像他們被調用時使用一個不存在的鍵值(可以)做為參數。
一個列表最多可以包含 4294967295, 每個列表超過40億個元素。 從時間複雜度的角度來看 Redis 列表的主要特徵是在頭和尾的元素插入和刪除是固定時間,即便是數以百萬計的插入。. 在列表的兩端訪問元素是非常快的但是如果你試著訪問一個非常大的列表的中間的元素是很慢的,因為那是一個O(N)操作。
在一個社交網路中建立一個時間軸模型,使用 LPUSH 去添加新的元素到使用者的時間軸, 使用 LRANGE 去接收一些最近插入的元素。
你可以將 LPUSH 和 LTRIM 一起用去建立一個永遠也不會超過指定元素數目的列表,但是記住是最後的N個元素。
列表能夠被用來作為訊息傳遞primitive。
指令學習:
1)LPUSH的作用是將一個或多個值 value 插入到列表 key 的表頭,執行成功時,返回列表長度
2)LSET可以將列表 key 下標為index的元素的值設定為 value ,列表 key 必須是已存在的,而且index不能超出列表長度範圍。
3)LPOP命令執行時會移除列表第一個元素,並將其返回
4)擷取列表元素,LINDEX命令,可以擷取到指定位置的 value;下標 (index)為正數時,0表示第一個元素,1表示第二個元素,下標 可以是負數,以 -1 表示列表的最後一個元素, -2 表示列表的倒數第二個元素。
5)LINSERT可以將值 value 插入到列表 key 當中,位於值 pivot 之前或之後,LINSERT key BEFORE|AFTER pivot value
當 pivot 不存在於列表 key 時,不執行任何操作
6)移除列表元素使用LREM命令,根據參數 count 的值,移除列表中與參數 value 相等的元素
- count > 0 : 從表頭開始向表尾搜尋,移除與 value 相等的元素,數量為 count 。
- count < 0 : 從表尾開始向表頭搜尋,移除與 value 相等的元素,數量為 count 的絕對值。
- count = 0 : 移除表中所有與 value 相等的值。
7)LLEN命令可以擷取到列表的長度
8)LTRIM可以對一個列表進行修剪,讓列表只保留指定區間內的元素,不在指定區間之內的元素都將被刪除
http://www.cnblogs.com/stephen-liu74/archive/2012/03/16/2351859.html
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。