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, 运行效果, 达到预想功能.
仓库地址:(RedisOperate 文件夹)
2020-05-24, 望技术有成后能回来看见自己的脚步
来源: https://www.cnblogs.com/CKExp/p/12904951.html