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的更多相关文章

  1. 一文了解:Redis基础类型

    Redis基础类型 Redis特点 开源的,BSD许可高级的key-value存储系统 可以用来存储字符串,哈希结构,链表,集合 安装 windows:https://github.com/micro ...

  2. Redis基础类型常用操作命令

    Redis基础类型常用操作命令 概念:Redis是用C语言开发的一个开源的高性能键值对数据库. 特征: 数据间没有必然的联系 内部采用单线程机制进行工作 高性能 多数据类型支持 字符串类型 Strin ...

  3. Redis学习笔记(3) Redis基础类型及命令之二

    1. 集合类型 集合类型与列表类型有很多相似之处,但二者的区别在于:前者具有唯一性,但不具有有序性:后者具有有序性,但不具有唯一性.集合类型的常用操作是向集合中加入或删除元素.判断某个元素是否存在等, ...

  4. Redis学习笔记(2) Redis基础类型及命令之一

    1. 基础命令 (1) 获取符合规则的键名列表 格式为:KEYS pattern 其中pattern表示支持通配符 # 建立一个名为bar的键 > SET bar OK # 获取Redis所有键 ...

  5. windows下使用redis,Redis入门使用,Redis基础命令

    windows下使用redis,Redis入门使用,Redis基础命令 >>>>>>>>>>>>>>>> ...

  6. [.net 面向对象程序设计深入](14)Redis——基础

    [.net 面向对象程序设计深入](14)Redis——基础 很长一段时间没更新博客了,坚持做一件事,真不是件容易的事,后面我会继续尽可能的花时间更新完这个系列文章. 因这个系列的文章涉及的范围太大了 ...

  7. linux redis基础应用 主从服务器配置

    Redis基础应用 redis是一个开源的可基于内存可持久化的日志型,key-value数据库redis的存储分为内存存储,磁盘存储和log文件三部分配置文件中有三个参数对其进行配置 优势:和memc ...

  8. [.net 面向对象程序设计深入](36)Redis——基础

    [.net 面向对象程序设计深入](36)Redis——基础 很长一段时间没更新博客了,坚持做一件事,真不是件容易的事,后面我会继续尽可能的花时间更新完这个系列文章. 因这个系列的文章涉及的范围太大了 ...

  9. mysql主从复制、redis基础、持久化和主从复制

    一.mysql(mariadb)基础 1.基础命令(centos7操作系统下) 1.启动mysql systemctl start mariadb 2.linux客户端连接自己 mysql -uroo ...

  10. Redis基础用法、高级特性与性能调优以及缓存穿透等分析

     一.Redis介绍 Redis是一个开源的,基于内存的结构化数据存储媒介,可以作为数据库.缓存服务或消息服务使用.Redis支持多种数据结构,包括字符串.哈希表.链表.集合.有序集合.位图.Hype ...

随机推荐

  1. IT服务,共享经济的下一个风口?

    前两天,在上千名CIO参加.释放10亿采购需求的2017华南CIO大会暨信息技术交易会上,一款"一站式IT工程师共享平台"成为大会关注焦点--这就是神州数码旗下的神州邦邦. 其实最 ...

  2. python实现二分叉查找

    *二分叉查找就是折半查找 比如12345这几个数字当中找2,他会先找到这五个数字中的中坚的那个与2进行比较,比如中间的3>2他就认为3以后的不用查找了,然后查找3左边的,即123,再把这个分半, ...

  3. CF思维联系–CodeForces - 225C. Barcode(二路动态规划)

    ACM思维题训练集合 Desciption You've got an n × m pixel picture. Each pixel can be white or black. Your task ...

  4. MySQL——视图/触发器/事务/存储过程/函数/流程控制

    一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...

  5. HTML data-* 属性的含义和使用

      data-*自定义数据属性 首先讲一下语法格式: data-* =“值” data-* 属性包括两部分: 属性名不应该包含任何大写字母,并且在前缀 "data-" 之后必须有至 ...

  6. P2380狗哥采矿(状态不易设计)

    描述:https://www.luogu.com.cn/problem/P2380 首先分析一下,易知传送带一定是要么向上,要么向右.且一定摆满了整个矩阵. 所以我们设 f [ i ] [ j ]表示 ...

  7. java运行时跟编译时的区别,欢迎大家指正

    个人博客地址:https://blog.csdn.net/qq_41907991 关于java运行时及编译时期的区别: 首先我们要了解编译以及运行的概念: 编译就是指,编译器帮你把源码翻译成机器能识别 ...

  8. [C#]基础——注意事项

    1. 静态类必须直接继承Object 2. 静态类不能实现接口,不能继承其他类(除了Object) 3.静态类中不能有实体方法 4.实体类中可以有静态方法,使用同 静态类 5.readonly属性可以 ...

  9. 李婷华 201771010113 《面向对象程序设计(java)》 第二周学习总结

    第一部分:理论知识学习部分 第三章 java的基本程序设计结构 本章主要学习数据类型.变量.运算符.类型转换.字符串.输入输出.控制流程.大数值.数组等内容. 1.基本知识 (1)标识符:由字母.下划 ...

  10. docker虚拟化平台构建

    docker虚拟化平台构建 从1.13版本以后的docker软件分为连个版本:企业版.社区版,在企业中推荐社区版本. 构建docker平台环境,系统选择centos7.x,推荐linux内核3.10 ...