1. 程式人生 > >Redis數據操作之列表 | Redis

Redis數據操作之列表 | Redis

錯誤 處的 bsp pan ltrim 列表項 redis 數量 fifo

| 一個列表可以包含一個或以上數量的項(item),每個項按照它們被推入到
列表的位置來排序。
# 每個列表項所處的位置決定這個項的索引值(index),索引以0開始,從列
最左端到右端依次遞增,位於列表最左端的項的索引為0,而位於列表最右
端的項的索引為N-1,其中N為列表的長度。
# 列表包含的項可以出現重復,它們不必是唯一的。
| 推入和彈出操作
-- 從列表的左端推入值 
    lpush key value [value ...]
    # 將一個或以上數量的值依次推入列表的左端,命令返回新值被推入後,列表
    目前包含的項數量。
-- 從列表的左端推入多個值
    lpush key value1 value2 value3
-- 從列表的右端推入值 rpush key value [value ...] -- 從列表的右端推入多個值 rpush key value1 value2 value3... -- 從列表的兩端彈出項 lpop key 移除並返回列表最左端的項 rpop key 移除並返回列表最右端的項
| 長度,索引和範圍操作 
-- 獲取列表的長度
    llen key
    # 返回列表鍵key的長度,返回列表包含的列表項數量
-- 返回給定索引上的項
    lindex key index
    # 返回列表鍵key中,指定索引index上的列表項,index可以是正負數
-- 返回給定索引範圍內的所有項 lrange key start stop # 返回列表鍵key中,從索引start至索引stop範圍內的所有列表項。 兩個索引參數都可以使正數或者負數。
| 插入和刪除操作 
-- 設置指定索引上的列表項
    lset key index value
    # 將列表鍵key索引index上的列表項設置為value,設置成功時命令返回OK。
    如果index參數超過了列表的索引範圍,name命令返回一個錯誤。
-- 在指定位置插入列表項
    linsert key before/after pivot value
    
# 根據命令調用時傳遞的是before選項還是after選項,將值value插入到指定 列表項pivot的之前或者之後,當pivot不存在於列表key時,不執行任何操作。 # 返回-1表示pivot不存在;返回0表示鍵key不存在;插入成功時則返回列表當 前的長度。 -- 從列表中刪除指定的值 lrem key count value 根據參數count的值,移除列表中與參數value相等的列表項: ①count>0,從表頭開始刪除值為value的列表項 ②count<0,從表尾開始刪除值為value的列表項 ③count=0,移除列表中所有值為value的列表項 命令返回被移除列表項的數量 -- 修剪列表 ltrim key start stop #對一個列表進行修剪,讓列表只保留指定索引範圍內的列表項,而將 不再範圍內的其他列表全部刪除,兩個索引都可以是正數或者負數。
| 阻塞彈出命令
-- blpop key [key1 ...] timeout
    # lpop命令的阻塞版本
    命令會以從左到右的順序,訪問給定的各個列表,並彈出首個非空列表
    最左端的項;
    如果所有給定列表都為空,那麽客戶端將被阻塞,直到等待超時,或者
    有可彈出的項出現為止;
    設置timeout參數為0表示永遠阻塞;
-- brpop key [key1 ...] timeout
    # rpop命令的阻塞版本
    命令會以從左到右的順序,訪問給定的各個列表,並彈出首個非空列表
    最右端的項;
    如果所有給定列表都為空,那麽客戶端將被阻塞,直到等待超時,或者
    有可彈出的項出現為止;
    設置timeout參數為0表示永遠阻塞;
-- brpoplpush source destination timeout
    # 從列表中彈出一個值,插入到另一個表中並返回;
-- 先到先服務原則 
-- FIFO先進先出隊列

Redis數據操作之列表 | Redis