Redis系列-存储篇list主要操作函数小结(转)
在总结list之前,先要弄明白几个跟list相关的概念:
列表:一个从左到右的队列,个人理解更类似于一个栈,常规模式下,先进列表的元素,后出。
表头元素:列表最左端第一个元素。
表尾元素:列表最右端的最后一个元素。不包含任何元素的列表成为空列表。
1)新增
a)lpush
语法:lpush key value[value]
解释:把一个或多个元素插入表头。如果是多个value时,按照从左到右的次序插。返回插入元素的个数
- [root@xsf001 ~]# redis-cli
- redis 127.0.0.1:6379> lpush lst.user zhangsan #插入一个元素
- (integer) 1
- redis 127.0.0.1:6379> lpush lst.user zhangsan lisi #插入多个元素,list中允许插入重复的元素
- (integer) 3
b)lpushx
语法:lpushx key value
解释:插入一个表头元素,当且仅当列表key存在时,才能插入。返回列表中元素的个数
- redis 127.0.0.1:6379> lpushx lst.user wangwu #列表存在
- (integer) 4
- redis 127.0.0.1:6379> lpushx lst.tech wangwu #列表不存在,不插入
- (integer) 0
c)rpush
语法:rpush key [value]
解释:将一个或多个值插入到队列的队尾。多值时,从左到右依次添加。返回列表中元素个数
- redis 127.0.0.1:6379> rpush lst.user ls005 #列表存在
- (integer) 5
- redis 127.0.0.1:6379> rpush lst.tech tec01 tec02 tec03 #列表不存在
- (integer) 3
d) rpushx
语法:rpushx key value
解释:讲值插入到列表队尾,当且仅当列表key存在时,才添加。返回列表元素个数
- redis 127.0.0.1:6379> rpushx lst.tech tec04 #key 存在
- (integer) 4
- redis 127.0.0.1:6379> rpushx lst.sub englist #key 不存在
- (integer) 0
e)linsert
语法:linsert key before|after pivot value
解释:将值插入到pivot的前面或后面。返回列表元素个数。如果参照点pivot不存在不插入。如果有多个pivot,以离表头最近的为准
- redis 127.0.0.1:6379> linsert lst.tech after tec04 tec06 #后面插
- (integer) 5
- redis 127.0.0.1:6379> linsert lst.tech before tec06 tec05 #前面插
- (integer) 6
- redis 127.0.0.1:6379> linsert lst.tech before tec08 tec07 #参照点不存在,不插
- (integer) -1
- redis 127.0.0.1:6379> linsert lst.user after zhangsan zhangsan01 #列表中有多个pivot,以从左到右的第一个为准
- (integer) 6
2)查询
a)lindex
语法:lindex key index
解释:通过索引index获取列表的元素。 index>=0时, 0 表头,1 第二个元素,依次类推;index<0时,-1,表尾,-2倒数第二个元素,依次类推
- redis 127.0.0.1:6379> lindex lst.user 0 #表头
- "wangwu"
- redis 127.0.0.1:6379> lindex lst.user -1 #表尾
- "ls005"
- redis 127.0.0.1:6379> lindex lst.user 2 #第三个元素
- "zhangsan"
- redis 127.0.0.1:6379> lindex lst.user -2 #倒数第二个元素
- "zhangsan"
b)lrange
语法:lrange key start stop
解释:获取指定开始和结束范围的一些列元素。0:表头,-1:表尾。如果stop指定的元素在start的左边,返回空列表
- redis 127.0.0.1:6379> lrange lst.user 0 -1 #返回所有
- 1) "wangwu"
- 2) "lisi"
- 3) "zhangsan"
- 4) "zhangsan01"
- 5) "zhangsan"
- 6) "ls005"
- redis 127.0.0.1:6379> lrange lst.user -1 0 #返回空
- (empty list or set)
- redis 127.0.0.1:6379> lrange lst.user 1 2 #返回多个
- 1) "lisi"
- 2) "zhangsan"
- redis 127.0.0.1:6379> lrange lst.user 1 1 #返回一个元素
- 1) "lisi"
3)修改
lset
语法:lset key index value
解释:设置列表指定索引的值,如果指定索引不存在则报错
- redis 127.0.0.1:6379> lset lst.user 2 zhangsan1 #设置第三个元素为zhangsan1
- OK
- redis 127.0.0.1:6379> lrange lst.user 0 -1
- 1) "wangwu"
- 2) "lisi"
- 3) "zhangsan1"
- 4) "zhangsan01"
- 5) "zhangsan"
- 6) "ls005"
- redis 127.0.0.1:6379> lset lst.user 6 ls006 #指定索引不存在
- (error) ERR index out of range
4)删除
a)ltrim
语法:ltrim key start stop
解释:保留指定区域的元素,其他元素全部删除
- redis 127.0.0.1:6379> ltrim lst.user 0 -2
- OK
- redis 127.0.0.1:6379> lrange lst.user 0 -1
- 1) "wangwu"
- 2) "lisi"
- 3) "zhangsan1"
- 4) "zhangsan01"
- 5) "zhangsan"
b)lrem
语法:lrem key count value
解释:移除等于value的元素,当count>0时,从表头开始查找,移除count个;当count=0时,从表头开始查找,移除所有等于value的;当count<0时,从表尾开始查找,移除|count| 个。
- redis 127.0.0.1:6379> lrange lst.user 0 -1
- 1) "zhangsan"
- 2) "wangwu"
- 3) "lisi"
- 4) "zhangsan1"
- 5) "zhangsan01"
- 6) "zhangsan"
- 7) "lisi"
- 8) "zhangsan"
- 9) "lisi"
- 10) "zhangsan"
- redis 127.0.0.1:6379> lrem lst.user 2 zhangsan #移除前两个zhangsan
- (integer) 2
- redis 127.0.0.1:6379> lrange lst.user 0 -1
- 1) "wangwu"
- 2) "lisi"
- 3) "zhangsan1"
- 4) "zhangsan01"
- 5) "lisi"
- 6) "zhangsan"
- 7) "lisi"
- 8) "zhangsan"
- redis 127.0.0.1:6379> lrange lst.user -1 zhangsan #移除最后一个zhangsan
- (empty list or set)
- redis 127.0.0.1:6379> lrange lst.user 0 -1
- 1) "wangwu"
- 2) "lisi"
- 3) "zhangsan1"
- 4) "zhangsan01"
- 5) "lisi"
- 6) "zhangsan"
- 7) "lisi"
- redis 127.0.0.1:6379> lrem lst.user 0 lisi #移除所有lisi
- (integer) 3
- redis 127.0.0.1:6379> lrange lst.user 0 -1
- 1) "wangwu"
- 2) "zhangsan1"
- 3) "zhangsan01"
- 4) "zhangsan"
- redis 127.0.0.1:6379>
c)rpop
语法:rpop key
解释:移除并返回表尾元素
- redis 127.0.0.1:6379> rpop lst.user
- "zhangsan"
d)lpop
语法:lpop key
解释:移除并返回表尾元素
- redis 127.0.0.1:6379> lpop lst.user
- "wangwu"
5)其他
a)llen
语法:llen key
解释:获取列表长度
- redis 127.0.0.1:6379> llen lst.user
- (integer) 2
参考:http://redis.io/commands#list
Redis系列-存储篇list主要操作函数小结(转)的更多相关文章
- Redis系列-存储篇string主要操作函数小结
通过上两篇的介绍,我们的redis服务器基本跑起来.db都具有最基本的CRUD功能,我们沿着这个脉络,开始学习redis丰富的数据结构之旅,当然先从最简单且常用的string开始. 1.新增 a)se ...
- Redis系列-存储篇set主要操作函数小结
最近,总是以“太忙“为借口,很久没有blog了,凡事贵在恒,希望我能够坚持不懈,毕竟在blog的时候,也能提升自己.废话不说了,直奔主题”set“ redis set 是string类型对象的无序集合 ...
- Redis系列-存储篇hash主要操作函数小结
阳光透过玻璃,洒在身上,一杯暖茶在手,说不尽的安逸自得,让我有种想再写篇blog的冲动.上篇主要谈了string,这里谈谈hash吧!hash是一些列key value(field value)的映射 ...
- Redis系列-存储篇list主要操作函数小结
在总结list之前,先要弄明白几个跟list相关的概念: 列表:一个从左到右的队列,个人理解更类似于一个栈,常规模式下,先进列表的元素,后出. 表头元素:列表最左端第一个元素. 表尾元素:列表最右端的 ...
- Redis系列-存储篇sorted set主要操作命令
Redis系列-存储篇sorted set主要操作函数小结 redis支持有序集合,即sorted set.sorted set在set的基础上,增加了排序属性,是set的升级版.这里简要谈谈sort ...
- Redis系列-存储篇string主要操作命令
Redis系列-存储篇string主要操作命令 通过上两篇的介绍,我们的redis服务器基本跑起来.db都具有最基本的CRUD功能,我们沿着这个脉络,开始学习redis丰富的数据结构之旅,当然先从最简 ...
- Redis系列-存储篇list主要操作命令
Redis系列-存储篇list主要操作命令小结 在总结list之前,先要弄明白几个跟list相关的概念: 列表:一个从左到右的队列,个人理解更类似于一个栈,常规模式下,先进列表的元素,后出. 表头元素 ...
- Redis系列-存储篇sorted set主要操作函数小结
redis支持有序集合,即sorted set.sorted set在set的基础上,增加了排序属性,是set的升级版.这里简要谈谈sorted set的常用函数: 1)insert a) zadd ...
- Redis系列-存储hash主要操作命令
Redis系列-存储篇hash主要操作函数小结 hash是一些列key value(field value)的映射表.常常用其存储一些对象实例.相对于把一个对象的各个字段存储为string,存储为ha ...
随机推荐
- vue2+nodejs+mongodb搭建移动端网站
从零开始一步步搭建移动端网站,持续更新,github代码如下,因为放了视频文件,下载可能有点慢 https://github.com/lanleilin/myHomepage 前端采用Vue2+vue ...
- Mongoose 表实例
/********** 用户表 BY Jaysir 2015.6.21 *********** *********** 可搜索以下关键词来查看未实现功能 *********** *********** ...
- 恶补一下DP+背包专题(刷刷水题)L2
开心的金明 题目大意 就是求一定背包容量的最大值 思路 想必大家都知道,一看到这种题目,就会想起01背包 虽然特别简单但是还是讲一下吧 状态设置 由于这题差不多是一个01背包的版子题,那么我们就只需要 ...
- lightgbm 学习资料汇总
操作实例:https://blog.csdn.net/luoyexuge/article/details/72956491 中文文档:https://lightgbm.apachecn.org/cn/ ...
- Android解析XML之SAX解析器
SAX(Simple API for XML)解析器是一种基于事件的解析器,它的核心是事件处理模式,主要是围绕着事件源以及事件处理器来工作的.当事件源产生事件后,调用事件处理器相应的处理方法,一个事件 ...
- 阻止关闭窗口,FormCloseQuery
procedure TfrmTopJdsMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin ) = mrNo then ...
- LeetCode OJ-- 3Sum Closest
https://oj.leetcode.com/problems/3sum-closest/ 给一列数和target,在这一列数中找出3个数,使其和最接近target,返回这个target. 一般思路 ...
- iOS直播Liveroom组件,游客,用户多次切换登录同一直播间,消息出现多次重复问题解决
byzqk 新版,加入连麦功能,直播的流程修改很多,每次登录都需要登录liveroom组件 期间遇到一个奇葩的问题,就是游客登录组件之后,切换为用户登录,出现im消息重复的问题,一开始以为是游客退出不 ...
- c# 序列化对象为xml 方法
public static string XmlUtils(object obj, bool omitXmlDeclaration = true, bool indent = false, bool ...
- 牛客网 牛客小白月赛2 A.数字方阵-反魔方阵,梁邱构造法
天坑未补... 水一波博客,再不写博客就咸成鱼干了,只写题不写题解,过一段时间就忘了自己学过什么了. 最近重点就是把开学以来写的题补出来,没学的就滚去学会啊(= =),填一下坑... 从这篇博客开始, ...