《Redis開發與運維》 列表List

2021-10-08 19:58:05 字數 1453 閱讀 1474

list 有序,可重複

redis中列表(list)型別是用來儲存多個有序的字串,列表中的每個字串成為元素(element),乙個列表最多可以儲存2^32 - 1個元素。

命令

# 新增操作

rpush key value [value ...]

# 從右向左插入元素

lpush key value [value ...]

# 從左向右插入元素

linsert key before|after pivot value # 向某個元素前/後插入元素,返回結果為當前列表長度

# 查詢

lrange key start end # 獲取指定範圍內的元素列表;如lrange key 0 -1,獲取列表全部元素; ps: lrange如果元素過多,存在阻塞redis的可能。可以用sscan來完成。

lindex key index # 獲取列表中指定索引下標的元素,如lindex key -1,獲取最後乙個元素;

llen key # 獲取列表長度

# 刪除

lpop key # 從列表左側彈出元素

rpop key # 從列表右側彈出元素

lrem key count value # lrem命令會從列表中找到等於value的元素進行刪除

# 根據count的不同分為三種情況;

# count>0,從左到右,刪除最多count個元素;

# count<0,從右到左,刪除最多count絕對值個元素;

# count=0,刪除所有元素。

ltrim key start end # 按照索引範圍切割列表;如ltrim key 1 3 只保留第2個到第4個元素

# 修改

lset key index newvalue # 修改指定下標的元素

# 阻塞操作

# 阻塞式彈出 timeout阻塞時間(單位:秒),當為0時,會一直阻塞,直到執行成功

blpop key [key ...]

timeout

brpop key [key ...]

timeout

# ps1: brpop list:1 list:2 list:3 0 如果是多個鍵,會從左至右遍歷鍵,哪個有值彈出哪個鍵中的元素

# ps2: client-1 > brpop list:test 0

# client-2 > brpop list:test 0 如果多個客戶端對同乙個鍵執行brpop,那麼誰先提交brpop命令請求,先給誰響應

內部編碼

使用場景

訊息佇列

應用場景總結:

lpush + lpop = stack(棧)

lpush + rpop = queue(佇列)

lpush + brpop = message queue(訊息佇列)

redis 開發與運維 1

由於手上負責的專案很依賴redis,而且redis曾經出過問題,故決定好好系統學習一下redis的知識,本文打算先介紹一下redis的基礎知識 首先我們必須明確的幾個知識點1 1 keys 這個命令可以檢視所有的鍵,這是這個 當前db所有的key 127.0 0.1 6379 keys 1 haha...

《Redis開發與運維》筆記 初識Redis

目錄 redis優點 redis特性 速度快基於鍵值對的資料結構伺服器 豐富的功能 簡單穩定 客戶端語言多 持久化主從複製 高可用和分布式 redis使用場景 redis可以做什麼 redis不可以做什麼 用好redis的建議 切勿當作黑盒使用,開發與運維同樣重要 閱讀原始碼 redis重大版本 r...

《Redis開發與運維》 理解記憶體

二 記憶體管理 三 記憶體優化 重點關注 used memory rss used memory mem fragmentation ratio 比值 當mem fragmentation ratio 1時,說明碎片率嚴重。當mem fragmentation ratio 1時,說明redis記憶體...