初探Redis-基礎型別List

微笑刺客D發表於2020-05-24

  Redis存在五種基礎型別:字串(String)、列表(List)、雜湊(Hash)、集合(Set)、有序集合(Sorted Set)。本次列舉出List的常用操作。

  Redis官網:https://redis.io/ 

 

一、列表(List)介紹

  Redis列表是簡單的字串列表,按照插入順序排序。可以新增一個元素到列表的頭部(左邊)或者尾部(右邊)。一個列表最多可以包含 232 - 1 個元素 (4294967295, 每個列表超過40億個元素)。可按照如下格式檢視,整體為鏈式結構,c語言中,連結串列功能十分強大,通過指標取得內部儲存地址,再通過內部儲存地址去取得實際資料(具體怎麼操作已還給老師)。可以方便的完成先進先出,先進後出等功能。

   

 

二、列表(List)相關操作Api

  •  LPush新增資料

  

  將連結串列看成整體,進行Lpush操作,使得新新增的元素作為起始元素。

  

  eg:

  

  • RPush新增資料

  

  將連結串列看成整體,進行Rpush操作,使得新新增的元素作為末位元素。

  

  eg:

  

  • 限定key存在執行新增資料

  

  eg:

   

  • List中指定索引處插入資料替換原有資料

  

  eg:

   

  • 對List中匹配的資料前或後插入新資料

   

  

  eg:

    

  • 讀取List中索引範圍內已有資料

  

  通過索引範圍讀取範圍內的資料資訊

   

   eg:

  

  • 讀取List中指定索引下已有資料

  

  eg:

   

  • 獲取List中資料總數

  

  eg:

  

  • 移除List前部資料

  

  

  eg:

  

  • 移除List尾部資料 

   

   

  eg:

  

  • 精簡List只保留索引範圍內資料

  

   eg:

   

  • 移除List中指定數量的匹配資料

  

  eg:

  

  • 等待匹配資料直到獲取或超時

   

  eg:

  

  • 從列表中移除並移入新列表

  

   eg:

  

  • 等待從列表中移除並移入新列表直至成功或超時

  

   eg:

  

 

三、列表(List)簡單應用場景

  以雜湊用法時的文章列表為例,網站首頁分頁展示文章資訊,而展示前先從list中取得分頁後的文章Id集合再從Hash中獲取文章概要資訊並展示。

1、初始列表資料新增一些種子資料

service.ListLeftPush("blogId", "9527");
service.ListLeftPush("blogId", "9528");
service.ListLeftPush("blogId", "9529");
service.ListLeftPush("blogId", "9530");
...

2、模擬增加一條資料並裁剪已有的種子資料集合使得總體數量在給定範圍內。

service.ListLeftPush("blogId", "9547");
service.ListRange<string>("blogId", 0, 20);//一個list最多2的32次方-1,範圍外的被移除

3、模擬分頁獲取,從Redis-List中取出等量資料並列印展示。

var page = 1;
var size = 10;
var blogIdsPagedResult = service.ListRange<string>("blogId", (page - 1) * size, page * size - 1);

4、執行效果,達到預想功能。

 

  

 倉庫地址:https://gitee.com/530521314/Partner.TreasureChest.git(RedisOperate資料夾)

2020-05-24,望技術有成後能回來看見自己的腳步

相關文章