1. 程式人生 > 其它 >Redis之列表

Redis之列表

(1).list列表     基於Linked List實現 元     素是字串型別     列表頭尾增刪快,中間增刪慢,增刪元素是常態     元素可以重複出現     最多包含2^32-1元素 (2).列表的索引     從左至右,從0開始     從右至左,從-1開始 (3).命令說明     B block 塊,阻塞     L left 左     R right 右     X exist 存在 (4).左右或者頭尾壓入元素     LPUSH key value [value ...]     LPUSHX key value     RPUSH key value [value ...]     RPUSHX key value (5).左右或者頭尾彈出元素(表中元素消失)     LPOP key     RPOP key (6).從一個列表尾部彈出元素壓入到另一個列表的頭部     RPOPLPUSH source destination (7).返回列表中指定範圍元素     LRANGE key start stop     LRANGE key 0 -1 表示返回所有元素 (8).獲取指定位置的元素     LINDEX key index (9).設定指定位置元素的值     LSET key index value (10).列表長度,元素個數     LLEN key (11).從列表頭部開始刪除值等於value的元素count次     LREM key count value     count > 0 : 從表頭開始向表尾搜尋,移除與 value 相等的元素,數量為 count     count < 0 : 從表尾開始向表頭搜尋,移除與 value 相等的元素,數量為 count 的絕對值     count = 0 : 移除表中所有與 value 相等的值   舉例 :     RPUSH listkey c abc c ab 123 ab bj ab redis list     LREM listkey 2 ab     LRANGE listkey 0 -1 (12).去處指定範圍外元素     LTRIM key start stop   舉例:     RPUSH listkey c abc c ab 123 ab bj ab redis list     LTRIM listkey 0 -1     LTRIM listkey 1 -1     LTRIM listkey 1 10000   微博的評論最後500條 :     LTRIM u1234:forumid:comments 0 499 (13).在列表中某個存在的值(pivot)前或後插入元素     LINSERT key BEFORE|AFTER pivot value     key和pivot不存在,不進行任何操作   舉例:     RPUSH lst Clojure C Lua     LINSERT lst AFTER C Python          LINSERT lst BEFORE C Ruby (14).阻塞     如果彈出的列表不存在或者為空,就會阻塞     超時時間設定為0,就是永久阻塞,直到有資料可以彈出     如果多個客戶端阻塞在同一個列表上,使用First In First Service原則,先到先服務 (15).左右或者頭尾阻塞彈出元素     BLPOP key [key ...] timeout     BRPOP key [key ...] timeout     timeout為設定的多少時間後彈出 (16).從一個列表尾部阻塞彈出元素壓入到另一個列表的頭部     BRPOPLPUSH source destination timeout