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記憶體...