一、基本介紹
對於list,它的儲存需求是什麼呢?對於string,講究單個,hash也不講究大量;當我們需要儲存多個資料的時候,前面的資料型別就不大合適了。
常見的幾種結構對比:
順序表:讀取快,插入慢
鍊錶:讀取慢,插入快,顯得不緊湊
對redis來說,採用雙向鍊錶,可以構建雙向操作的場景,有順序的概念。redis用於於具有操作先後順序的資料控制;
二、基本操作
功能命令
其他說明
新增修改資料
lpush key value1 value2...
rpush key value1 value2...
lpush是往左新增,rpush是往右新增;
返回list中元素的個數
獲得資料
lrange key start stop
lindex key index
llen key
注意索引是從0開始的;比方說有3個元素,我們的命令
應該是:lrang list1 0 2;如果不知道具體有多少個,可以
使用:lrang list1 0 -1
是的,反著查,-1代表最後乙個元素
llen key返回長度
獲取並刪除資料
lpop key
rpop key
返回拿出來的元素
三、擴充套件操作
3.1 阻塞資料獲取
功能命令
其他說明
規定時間內獲取並移除資料
blpop key [key2] timeout
brpop key [key2] timeout
相對前面的lpop,b代表的是block,阻塞的意思的意思是現在沒有,
不代表將來沒有,可以等,等多久呢,timeout(單位秒);
只要有,就立馬取出來;
多個key的意思是,只有其中乙個key有,就取;
這裡就可以聯想到我們任務佇列的實現
3.2 移除指定資料
如果取消點讚,移除對應好友資訊
功能命令
其他說明
移除指定資料
lrem key count value
rang的意思是:list的元素是可以重複的,移除的時候可以指定移除多個,
當然這裡移除點讚好友也只會有乙個了;返回成功刪除元素的個數
四、注意事項
這一節就到這裡,下一節寫資料型別之set。
Redis(四)redis的事務
可以一次執行多個命令,本質是一組命令的集合。乙個事務中的 所有命令都會序列化,按順序地序列化執行而不會被其它命令插入,不許加塞。乙個佇列中,一次性 順序性 排它性的執行一系列命令。開啟 以multi開始乙個事務 入隊 將多個命令入隊到事務中,接到這些命令並不會立即執行,而是放到等待執行的事務佇列裡面...
redis專題十六 redis的常見幾個解決方案
一 快取預熱 現象 伺服器啟動之後迅速宕機 分析 1 前期準備工作 2 準備工作 3 實施 二 快取雪崩 現象 系統平穩執行過程中,忽然資料庫連線量激增,應用伺服器無法及時處理請求,可能前端頁面也會崩潰,資料庫崩潰,緊接著應用伺服器崩潰,redis集群崩潰,即使重啟資料庫等之後再次瞬間被流程放倒。分...
Redis資料彙總專題
from 很多朋友反映,說nosqlfan上的資料 本篇為redis 部分的資料彙總。保持持續更新。使用redis bitmap進行活躍使用者統計 redis採用不同記憶體分配器碎片率對比 redis優化之網路延遲 redis 資料庫結構設計 使用redis的五個注意事項 利用redis構建高效的實...