Redis的使用 三 Redis列表List

2021-09-28 22:54:51 字數 2593 閱讀 8742

目錄

1. 什麼是列表

2. 命令使用

2.1 lpush/rpush推入值

2.2 lpop/rpop彈出值

2.3 llen獲取列表長度

2.4 lindex指定索引

2.5 lrange指定索引範圍

2.6 lset設定指定索引上的值

2.7 linsert插入值

2.8 lrem刪除指定的值

2.9 ltrim修減列表

2.10 blpop/brpop阻塞彈出

從菜鳥教程看到redis列表是簡單的字串列表,按照插入順序排序。你可以新增乙個元素導列表的頭部(左邊)或者尾部(右邊)。舉個例子:

lpush key value [value ...]:從左邊推入,命令返回新值被推入之後,列表目前包含的項數量。

rpush key value [value ...]:從右邊推入,命令返回新值被推入之後,列表目前包含的項數量。

lpush kt '格力'

rpush kt '美的'

lpush kt '海爾'

執行以上命令後,檢視結果:

推入多個值的時候需要注意的是,如果是lpush推入,那麼推入順序與命令順序相反,如果使用rpust命令,那麼推入順序和命令上的順序一致。

lpush kt 'l海爾1' 'l海爾2' 'l海爾3'

rpush kt 'r海爾1' 'r海爾2' 'r海爾3'

lopo key:移出並返回最左邊的頂

rpop key:移出並返回最右邊的頂

lpop kt

rpop kt

檢視結果:

llen key:返回列表長度

lindex key index:返回指定index索引上的值,index索引值可以是正數也可以是負數。

lrange key start stop:返回從start開始到stop結束的值,start、stop可正可負(閉區間)。

lset key index value:將index索引上的值設定為value,設定成功返回ok,失敗返回錯誤。

linsert key before|after 參考點 value:before表示在參考點之前插入value,after表示在參考點之後插入。如果指定的參考點不存在,則不執行操作。返回結果為0表示key不存在,返回結果為-1表示參考點不存在,插入成功返回列表長度。

檢視結果:

lrem key count value:根據count的值刪除列表中值為value的項,返回被移出的數量。

• 如果 count > 0 ,那麼從表頭開始向表尾搜尋,移除最多 count 個值為 value 的列表項。

• 如果 count < 0 ,那麼從表尾開始向表 頭搜尋,移除最多 abs(count) 個值為 value 的列表項。

• 如果 count = 0 ,那麼移除列表中所有 值為 value 的列表項。

ltrim key start stop:修減列表,只儲存從start到stop中的值,其他的刪除,start、stop可正可負。命令執行成功返回ok。

blopo key time:命合會以從左到右的順序,訪問給定的各個列表,並彈出首個非空列表最左端的項;如果所有給定列表都為空,那麼客戶端捋被阻塞,直到等待超時,或者有可彈出的項出現為止;設定 time引數為0表示永遠阻塞。

bropo key time:命合會以從左到右的順序,訪問給定的各個列表,並彈出首個非空列表最右端的項;如果所有給定列表都為空,那麼客戶端捋被阻塞,直到等待超時,或者有可彈出的項出現為止;設定time引數為0表示永遠阻塞。

本節類容到此結束

本人****2329095893,歡迎各位進行學習討論

REDIS使用指南三 Redis的使用

3 redis的使用 3.1 啟動redis服務 3.2 啟動和退出命令列操作工具 3.3 命令列下常用資料結構的操作 2.3.1 字串的操作 可儲存任何形式的字串,包括二進位制資料,乙個字串型別鍵允許儲存的最大容量是512m。如果key對應的值是字串,會報錯 err value is not an...

Redis 使用記錄(三)

hash 是乙個 string 型別的 field 和value 的對映表。每個 hash 可以儲存 232 1 鍵值對 40多億 例如乙個使用者的姓名 生日等資料,如果使用 kye value 儲存,就要轉換成字串形式 json 等 儲存和修改都會很麻煩,但是 hash 可以很方便的實現。由於ha...

Redis(三) redis持久化

redis是支援資料持久化的,雖然在生產中經常被當做快取伺服器使用。redis持久化機制分為兩種 第一種是快照第二種是aof日誌。快照原理 前面redis基礎篇中提到,redis是單執行緒的,這個執行緒需要同時處理客戶端的請求和記憶體資料結構的邏輯讀寫,顯然難以在保持高效能的前提下完成這些工作。所以...