初探Redis-基础类型List

  Redis存在五种基础类型:字符串(String)、列表(List)、哈希(Hash)、集合(Set)、有序集合(Sorted Set)。本次列举出List的常用操作。

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

 

一、列表(List)介绍

  Redis列表是简单的字符串列表,按照插入顺序排序。可以添加一个元素到列表的头部(左边)或者尾部(右边)。一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。可按照如下格式查看,整体为链式结构,c语言中,链表功能十分强大,通过指针取得内部存储地址,再通过内部存储地址去取得实际数据(具体怎么操作已还给老师)。可以方便的完成先进先出,先进后出等功能。

   初探Redis-基础类型List_第1张图片

 

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

  •  LPush添加数据

  初探Redis-基础类型List_第2张图片

  将链表看成整体,进行Lpush操作,使得新添加的元素作为起始元素。

  初探Redis-基础类型List_第3张图片

  eg:

  初探Redis-基础类型List_第4张图片

  • RPush添加数据

  初探Redis-基础类型List_第5张图片

  将链表看成整体,进行Rpush操作,使得新添加的元素作为末位元素。

  初探Redis-基础类型List_第6张图片

  eg:

  初探Redis-基础类型List_第7张图片

  • 限定key存在执行添加数据

  初探Redis-基础类型List_第8张图片

  eg:

   初探Redis-基础类型List_第9张图片

  • List中指定索引处插入数据替换原有数据

  初探Redis-基础类型List_第10张图片

  eg:

   初探Redis-基础类型List_第11张图片

  • 对List中匹配的数据前或后插入新数据

  初探Redis-基础类型List_第12张图片 

  初探Redis-基础类型List_第13张图片

  eg:

   初探Redis-基础类型List_第14张图片 

  • 读取List中索引范围内已有数据

  初探Redis-基础类型List_第15张图片

  通过索引范围读取范围内的数据信息

  初探Redis-基础类型List_第16张图片 

   eg:

  初探Redis-基础类型List_第17张图片

  • 读取List中指定索引下已有数据

  初探Redis-基础类型List_第18张图片

  eg:

  初探Redis-基础类型List_第19张图片 

  • 获取List中数据总数

  初探Redis-基础类型List_第20张图片

  eg:

  初探Redis-基础类型List_第21张图片

  • 移除List前部数据

  初探Redis-基础类型List_第22张图片

  初探Redis-基础类型List_第23张图片

  eg:

  初探Redis-基础类型List_第24张图片

  • 移除List尾部数据 

   初探Redis-基础类型List_第25张图片

   初探Redis-基础类型List_第26张图片

  eg:

  初探Redis-基础类型List_第27张图片

  • 精简List只保留索引范围内数据

  初探Redis-基础类型List_第28张图片

   eg:

  初探Redis-基础类型List_第29张图片 

  • 移除List中指定数量的匹配数据

  初探Redis-基础类型List_第30张图片

  eg:

  初探Redis-基础类型List_第31张图片

  • 等待匹配数据直到获取或超时

   初探Redis-基础类型List_第32张图片

  eg:

  初探Redis-基础类型List_第33张图片

  • 从列表中移除并移入新列表

  初探Redis-基础类型List_第34张图片

   eg:

  初探Redis-基础类型List_第35张图片

  • 等待从列表中移除并移入新列表直至成功或超时

  初探Redis-基础类型List_第36张图片

   eg:

  初探Redis-基础类型List_第37张图片

 

三、列表(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、运行效果,达到预想功能。

 初探Redis-基础类型List_第38张图片

  

 仓库地址:https://gitee.com/530521314/Partner.TreasureChest.git(RedisOperate文件夹)

2020-05-24,望技术有成后能回来看见自己的脚步

你可能感兴趣的:(初探Redis-基础类型List)