初探Redis-基础类型List
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", "");
service.ListLeftPush("blogId", "");
service.ListLeftPush("blogId", "");
service.ListLeftPush("blogId", "");
...
2、模拟增加一条数据并裁剪已有的种子数据集合使得总体数量在给定范围内。
service.ListLeftPush("blogId", "");
service.ListRange<string>("blogId", , );//一个list最多2的32次方-1,范围外的被移除
3、模拟分页获取,从Redis-List中取出等量数据并打印展示。
var page = ;
var size = ;
var blogIdsPagedResult = service.ListRange<string>("blogId", (page - ) * size, page * size - );
4、运行效果,达到预想功能。
仓库地址:https://gitee.com/530521314/Partner.TreasureChest.git(RedisOperate文件夹)
2020-05-24,望技术有成后能回来看见自己的脚步
初探Redis-基础类型List的更多相关文章
- 一文了解:Redis基础类型
Redis基础类型 Redis特点 开源的,BSD许可高级的key-value存储系统 可以用来存储字符串,哈希结构,链表,集合 安装 windows:https://github.com/micro ...
- Redis基础类型常用操作命令
Redis基础类型常用操作命令 概念:Redis是用C语言开发的一个开源的高性能键值对数据库. 特征: 数据间没有必然的联系 内部采用单线程机制进行工作 高性能 多数据类型支持 字符串类型 Strin ...
- Redis学习笔记(3) Redis基础类型及命令之二
1. 集合类型 集合类型与列表类型有很多相似之处,但二者的区别在于:前者具有唯一性,但不具有有序性:后者具有有序性,但不具有唯一性.集合类型的常用操作是向集合中加入或删除元素.判断某个元素是否存在等, ...
- Redis学习笔记(2) Redis基础类型及命令之一
1. 基础命令 (1) 获取符合规则的键名列表 格式为:KEYS pattern 其中pattern表示支持通配符 # 建立一个名为bar的键 > SET bar OK # 获取Redis所有键 ...
- windows下使用redis,Redis入门使用,Redis基础命令
windows下使用redis,Redis入门使用,Redis基础命令 >>>>>>>>>>>>>>>> ...
- [.net 面向对象程序设计深入](14)Redis——基础
[.net 面向对象程序设计深入](14)Redis——基础 很长一段时间没更新博客了,坚持做一件事,真不是件容易的事,后面我会继续尽可能的花时间更新完这个系列文章. 因这个系列的文章涉及的范围太大了 ...
- linux redis基础应用 主从服务器配置
Redis基础应用 redis是一个开源的可基于内存可持久化的日志型,key-value数据库redis的存储分为内存存储,磁盘存储和log文件三部分配置文件中有三个参数对其进行配置 优势:和memc ...
- [.net 面向对象程序设计深入](36)Redis——基础
[.net 面向对象程序设计深入](36)Redis——基础 很长一段时间没更新博客了,坚持做一件事,真不是件容易的事,后面我会继续尽可能的花时间更新完这个系列文章. 因这个系列的文章涉及的范围太大了 ...
- mysql主从复制、redis基础、持久化和主从复制
一.mysql(mariadb)基础 1.基础命令(centos7操作系统下) 1.启动mysql systemctl start mariadb 2.linux客户端连接自己 mysql -uroo ...
- Redis基础用法、高级特性与性能调优以及缓存穿透等分析
一.Redis介绍 Redis是一个开源的,基于内存的结构化数据存储媒介,可以作为数据库.缓存服务或消息服务使用.Redis支持多种数据结构,包括字符串.哈希表.链表.集合.有序集合.位图.Hype ...
随机推荐
- MacBook Pro装Win7后喇叭没有声音
将MacBook的系统由XP改为Win7 64位后,发现喇叭没有声音了,装了bootcamp并升级到3.2版本都无济于事,google了下,发现还是驱动的问题,Win7下在设备管理器中看到声卡为Hig ...
- 图论--网络流--费用流POJ 2195 Going Home
Description On a grid map there are n little men and n houses. In each unit time, every little man c ...
- prufer编码学习笔记
prufer 编码 对于一个无根树,他的 prufer 编码是这样确定的: 每次找到编号最小的一个叶子节点,也就是度数为\(1\)的节点,把和它相连的点,加入 prufer 编码序列的末尾,然后把这个 ...
- ASP.NET Core3.x 基础—注册服务(2)
这篇文章介绍在ASP.NET Core中注册一下自己的服务. 首先创建一个Services文件夹.在文件夹里面创建一个接口 IClock,以及两个类ChinaClock.UtcClock.这两个类分别 ...
- A Simple Problem with Integers 循环节 修改 平方 找规律 线段树
A Simple Problem with Integers 这个题目首先要打表找规律,这个对2018取模最后都会进入一个循环节,这个循环节的打表要用到龟兔赛跑. 龟兔赛跑算法 floyed判环算法 ...
- Java 函数式接口
目录 Java 函数式接口 1. 函数式接口 1.1 概念 1.2 格式 1.3 函数式接口的使用 2. 函数式编程 2.1 Lambda的延迟执行 性能浪费的日志案例 使用Lambda表达式的优化 ...
- Spring官网阅读(十五)Spring中的格式化(Formatter)
文章目录 Formatter 接口定义 继承树 注解驱动的格式化 AnnotationFormatterFactory FormatterRegistry 接口定义 UML类图 FormattingC ...
- POI问题总结,关于数字级联及多级级联(三级以上)
目录 最近公司业务需要用到excel,并且要导出模板,今天为止所有的功能都已经实现了,在这里对出现的一些问题做一个总结. 效果图: 这是一个五级联动的数据,其中第一列是数字开头,实现了五级联动 问题1 ...
- springmvc与struts2执行流程比较
之前写过一篇struts2的执行流程的文章了,这里对struts2的流程就不做过多的分析,这篇文章主要分析spring-mvc的执行流程以 及struts2与spring-mvc的差别. 1.stru ...
- Unity 游戏框架搭建 2019 (四十六) 简易消息机制 & 集成到 MonoBehaviourSimplify 里
在上一篇,我们接触了单例,使用单例解决了我们脚本之间访问的问题. 脚本之间访问其实有更好的方式. 我们先分下脚本访问脚本的几种形式. 第一种,A GameObject 是 B GameObject 的 ...