Redis的List是一个双向链表

LPUSH

作用:向列表左端添加元素

语法:LPUSH key value value...

从左到右逐个添加到左端,前面的先添加, 可以一次添加多个元素

RPUSH

作用:向列表右端添加元素

语法:RPUSH key value, value...

LPUSHX

作用: 向列表左端添加元素,只有key存在才可以添加

语法:LPUSH key value

一次只能添加一个元素

RPUSHX

作用: 向列表右端添加元素,只有key存在才可以添加

语法:RPUSH key value

一次只能添加一个元素

LPOP

作用:将列表左端的元素弹出

语法:LPOP key

RPOP

作用: 将列表右端的元素弹出

语法: RPOP key

不存在就nil

LLEN

作用:获得列表的长度

语法:LLEN key

不存在就返回0

LRANGE

作用: 获取列表片段

语法: LRANGE key start stop

包含最后的索引值

如果start比列表的长度还大,则返回空

LREM

作用:删除指定的值

语法: LREM key count value

count值由以下几类型:
count>0: 从列表的头部开始,向尾部搜索,移除与value相等的count个元素
count<0: 从列表的尾部开始,向头部搜索,移除与value相等的count个元素
count=0: 移除列表中全部的与count相等的值

LINDEX

作用:获得指定索引元素的值

语法: LINDEX key index

LSET

作用:设置指定索引的值

语法:LSET key index value

LTRIM

作用:只保留列表的片段

语法:LTRIM key start stop

当start大于列表长度,则被清空

LINSERT

作用:向列表插入元素

语法:LINSERT key BEFORE|AFTER pivot value

LINSERT key BEFORE a hello
向key这个列表中,a之前插入一个元素hello
成功返回列表的长度
如果a不存在,则返回-1
对空列表不可用,返回0

RPOPLPUSH

作用: 弹出右边元素,添加到左边,是一个原子操作, 返回弹出的元素

语法: RPOPLPUSH source destination

可以是同一个列表
source不存在时,返回nil

BLPOP

作用:BLPOP是LPOP的阻塞版本,将第一个不为空的列表弹出

语法:BLPOP key [key...] timeout

timeout为0表示无限期等待
如果列表为空,则会在timeout时间之内一直等待, 当列表被添加之后,会弹出此列表,返回阻塞时间
支持多客户端操作

Redis学习篇(四)之List类型及其操作的更多相关文章

  1. redis 学习(6)-- 集合类型

    redis 学习(6)-- 集合类型 set 结构 无序 无重复 集合间操作 set 集合内操作 命令 含义 sadd key memebr1 [member2...] 向集合中添加一个或多个成员 s ...

  2. redis 学习(5)-- 列表类型

    redis 学习(5)-- 列表类型 列表特点 有序.可以重复.左右两边插入弹出 索引相关知识 索引从左往右,从0开始逐个增大 0 1 2 3 4 5 索引从右往左,从-1开始逐个减小 -6 -5 - ...

  3. redis 学习(3)-- String 类型

    redis 学习(3)-- String 类型 String-结构 结构:Key-Value对 Value:可以是字符串.数字,也可以是二进制数组 限制:Value最大值为512MB String-常 ...

  4. redis学习教程四《管理、备份、客户端连接》

    redis学习教程四<管理.备份.客户端连接>  一:Redis服务器命令 Redis服务器命令 下表列出了与Redis服务器相关的一些基本命令. 序号 命令 说明 1 BGREWRITE ...

  5. redis学习 (key)键,Python操作redis 键 (二)

    # -*- coding: utf-8 -*- import redis #这个redis 连接不能用,请根据自己的需要修改 r =redis.Redis(host=") 1. delete ...

  6. spring 学习(四): spring 的 jdbcTemplate 操作

    spring 学习(四): spring 的 jdbcTemplate 操作 spring 针对 javaee 的每一层,都提供了相应的解决技术,jdbcTemplate 的主要操作在 dao 层. ...

  7. 分布式缓存技术redis学习(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

    本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用( ...

  8. javascript学习笔记(四) Number 数字类型

    数字格式化方法toFixed().toExponential().toPrecision(),三个方法都四舍五入 toFixed() 方法指定小数位个数  toExponential() 方法 用科学 ...

  9. redis数据类型(四)list类型

    一.list类型 list是一个链表结构,可以理解为一个每个子元素都是 string 类型的双向链表. 主要功能是push.pop.获取一个范围的所有值等. 操作中key理解为链表的名字. 二.Lis ...

随机推荐

  1. PHP扩展开发--01.编写一个helloWorld扩展

    为什么要用C扩展 C是静态编译的,执行效率比PHP代码高很多.同样的运算代码,使用C来开发,性能会比PHP要提升数百倍. 另外C扩展是在进程启动时加载的,PHP代码只能操作Request生命周期的数据 ...

  2. Flex布局之box-flex

    box-flex的写法比flex的写法要复杂一些,兼容性的前缀要多带几个,真希望有一天flex布局能够纳入w3c标准啊! <!DOCTYPE html> <html> < ...

  3. 【BZOJ4552】【HEOI2016】排序 [二分答案][线段树]

    排序 Time Limit: 60 Sec  Memory Limit: 256 MB[Submit][Status][Discuss] Description 在2016年,佳媛姐姐喜欢上了数字序列 ...

  4. Discrete Logging(POJ2417 + BSGS)

    题目链接:http://poj.org/problem?id=2417 题目: 题意: 求一个最小的x满足a^x==b(mod p),p为质数. 思路: BSGS板子题,推荐一篇好的BSGS和扩展BS ...

  5. perl6正则 5: [ ] / | / ||

    也就是可以把多种要匹配的写进[ ] 中, 第种用 | 分开就行了. | 与 || 有差别 |的话, 当匹配位置 相同时, 会取最长的, 而 || , 当前面的匹配成功, 后面的就不会再去匹配. / / ...

  6. 一个TCP报文段的数据部分最多为多少个字节,为什么

    IP数据报的最大长度=2^16-1=65535(字节)TCP报文段的数据部分=IP数据报的最大长度-IP数据报的首部-TCP报文段的首部=65535-20-20=65495(字节) 一个tcp报文段的 ...

  7. 2017 NEERC

    2017 NEERC Problem A. Archery Tournament 题目描述:在二维平面上,会陆续出现一些圆,以及一些询问,询问点是否在圆内,如果是,则输出那个圆,并把那个圆删掉,否则输 ...

  8. $NTT$(快速数论变换)

    - 概念引入 - 阶 对于$p \in N_+$且$(a, \ p) = 1$,满足$a^r \equiv 1 (mod \ p)$的最小的非负$r$为$a$模$p$意义下的阶,记作$\delta_p ...

  9. CSS3 object-fit 图像裁剪

    MDN定义 https://developer.mozilla.org/zh-CN/docs/Web/CSS/object-fit 该 object-fit CSS 属性指定替换元素的内容应该如何适应 ...

  10. Django Authentication 用户认证系统

    一. Django的认证系统 Django自带一个用户认证系统,用于处理用户账户.群组.许可和基于cookie的用户会话. 1.1 概览 Django的认证系统包含了身份验证和权限管理两部分.简单地说 ...