本文版权归博客园和作者吴双本人共同所有。转载和爬虫请注明原文地址

Redis五种数据类型之列表类型

Redis五种数据类型之列表类型。你可以存储一个有序的字符串列表一类数据。比如你想展示你所存储的所有文章中的前十条,当分页取下一页的时候,你也可以取接下来的十条。所以建议你维护一个文章ID的列表。其内部使用双向链表实现,这意味着在你获取一段头部和尾部的数据是极快的,但是在数据量大时获取列表中间部分的数据稍慢。因为链表通过索引访问数据。比如微信的朋友圈,我们关注的大部分只是最新的数据,所以这样的场景很合适。同时,在插入数据时,也是在左右两端插入,效率也不会受到影响。

下面简单介绍一下命令:

LPUSH Key Values.....  我们插入 3 4 5 6 7 8插入后 他们的结构应该是 8 7 6 5 4 3因为是一直向左插入嘛。

1.RPUSH自然就是向右插入。

2.LRANGE Key Start End命令,获取指定key的开始到结束索引的值。索引从0开始。负数索引的话,最右侧的元素是-1。如果说end小于start则返回空列表。0到-1的数据,自然就是最左侧到最右侧了。当然你也可以0-正值索引结束,返回的还是这几个数据。

3.LPOP分别是从列表的最左侧和最右侧弹出一个元素,弹出也就是取出数据后从原列表移除掉了。Redis消息队列也正是依据这样的列表和弹出的原理。

4.LLEN Key获取指定Key的集合长度。

5.LINDEX Key index  返回指定Key的指定索引位置的值。

6.LSET Key index val 替换指定索引(已存在的哟)位置的原有值。

如果你的索引值超过集合界限,那么返回如下错误。如果你获取超过索引范围的值,那么会返回nil

7.LTRIM key start end 删除指定索引外的所有值。比如你想实现一个只展示最新TOP10条的新闻列表,那么你就可以让LPUSH和LTRIM配合一下了。每次在左侧插入新数据后,都继续执行LTRIM key 0 9。其他数据自然删除了。

8.LINSERT 在指定Key的执行值(注意是值,不是索引)的前面BEFORE或者后面AFTER插入目标值。如果你存在重复值,那么会报Arguments冲突。

9.RPOPLPUSH  弹出右侧元素,并且存到新的集合中。如果你需要循环利用一个集合中的数据,你也可以RPOPLPUSH sourceList sourceList。从源集合到源集合当中。

10.LREM,删除指定Key中前多少个值为xxx的元素

有些命令你可能今天用不到,但是积累起来,相信有一天需求一出现,你立马能反应出来。

Redis命令拾遗三(列表List类型)的更多相关文章

  1. Redis命令拾遗四(集合类型)—包含简单搜索筛选商品设计实例。

    本文版权,归博客园和作者吴双共同所有.转载和爬虫请注明博客园蜗牛Redis系列文章地址 http://www.cnblogs.com/tdws/tag/NoSql/ Redis数据类型之集合(Set) ...

  2. Redis命令拾遗一(字符串类型)

    文章归博客园和作者“蜗牛”共同所有 .转载和爬虫请注明原文Redis系列链接 http://www.cnblogs.com/tdws/tag/NoSql/ Redis有五种基本数据类型.他们分别是字符 ...

  3. Redis命令拾遗二(散列类型)

    本文版权归博客园和作者吴双共同所有,欢迎转载,转载和爬虫请注明原文地址 :博客园蜗牛NoSql系列地址  http://www.cnblogs.com/tdws/tag/NoSql/ Redis命令拾 ...

  4. Redis命令拾遗四——集合类型(命令补充)

    补充下上篇文章集合的命令. 上篇地址 博客园蜗牛 http://www.cnblogs.com/tdws/p/5785939.html SCARD Key获得执行集合中元素的数量. SDIFFSTOR ...

  5. Redis命令拾遗五(有序集合)

    本文版权归博客园和作者吴双本人共同所有,博客园蜗牛NoSql系列分享 http://www.cnblogs.com/tdws/tag/NoSql/ Sorted Set 有序集合—Sorted Set ...

  6. redis数据类型(三)hash类型

    一.hash类型   hash是一个string类型的field和value的映射表.添加,删除操作都是O(1)(平均).   hash特别适合用于存储对象.相对于将对象的每个字段存成单个string ...

  7. Redis 命令,键(key),字符串(String),哈希(Hash),列表(List),集合(Set)(二)

      Redis 命令 Redis 命令用于在 redis 服务上执行操作. 要在 redis 服务上执行命令需要一个 redis 客户端.Redis 客户端在我们之前下载的的 redis 的安装包中. ...

  8. 玩一把redis源码(一):为redis添加自己的列表类型

    2019年第一篇文档,为2019年做个良好的开端,本文档通过step by step的方式向读者展示如何为redis添加一个数据类型,阅读本文档后读者对redis源码的执行逻辑会有比较清晰的认识,并且 ...

  9. redis源码(一):为redis添加自己的列表类型

    本文档分为三大部分: 环境介绍与效果演示 redis接收命令到返回数据的执行逻辑 代码实现 文档的重点和难点在第三部分,完全阅读本文档需要读者具备基本的c语言和数据结构知识. 环境介绍和效果演示环境介 ...

随机推荐

  1. [C#] C# 知识回顾 - 学会使用异常

    学会使用异常 在 C# 中,程序中在运行时出现的错误,会不断在程序中进行传播,这种机制称为“异常”. 异常通常由错误的代码引发,并由能够更正错误的代码进行 catch. 异常可由 .NET 的 CLR ...

  2. Oracle碎碎念~1

    1. 设置SQL*Plus提示符 SQL> set sqlprompt "_user'@'_connect_identifier>" SYS@orcl> 为了对所 ...

  3. 独立开发 一个社交 APP 的架构分享 (已实现)

    (本博客为原创:http://www.cnblogs.com/linguanh/)   My BananaCloud Android Application 前言:  这算是我的第一个 完完全全 由自 ...

  4. Mysql命令大全

    格式: mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MYSQL.首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输 ...

  5. java使用websocket,并且获取HttpSession,源码分析

    转载请在页首注明作者与出处 http://www.cnblogs.com/zhuxiaojie/p/6238826.html 一:本文使用范围 此文不仅仅局限于spring boot,普通的sprin ...

  6. peer not authenticated的终极解决方案

    一.前述 使用httpclient发起https请求时,可能会遇到如下异常: javax.net.ssl.SSLPeerUnverifiedException: peer not authentica ...

  7. .Net语言 APP开发平台——Smobiler学习日志:手机应用的TextTabBar快速实现方式

    参考页面: http://www.yuanjiaocheng.net/webapi/create-crud-api-1-put.html http://www.yuanjiaocheng.net/we ...

  8. SharePoint 2016 入门视频教程

    之前一直有朋友让自己录一些SharePoint的入门视频,之前没有太多时间,一个巧合的机会收到CSDN学院的邮件,可以在CSDN上发布视频教程,自己就录了一些.说起录视频也是蛮辛苦的,每天下班吃完饭要 ...

  9. 在 Windows7 上按照 MySQL5.7

    在 Windows7 上按照 MySQL5.7 1.从官网下载最新版本的 MySQL,这里下载的是 mysql-5.7.17-win32: 2.将下载的 mysql-5.7.17-win32.zip ...

  10. ubuntu系统(华硕笔记本)屏幕亮度用Fn控制的调节设置

    亲测配置: 系统:Linux lite 3.2 x86_64(Ubuntu其他版本可参考修改) 笔记本:华硕(asus)1201N 达到的效果: 可以正常使用Fn+F5调暗,Fn+F6调亮. 设置步骤 ...