Redis系列-存储篇list主要操作函数小结
来源:互联网 发布:软件测试转正心得体会 编辑:程序博客网 时间:2024/04/30 11:31
在总结list之前,先要弄明白几个跟list相关的概念:
列表:一个从左到右的队列,个人理解更类似于一个栈,常规模式下,先进列表的元素,后出。
表头元素:列表最左端第一个元素。
表尾元素:列表最右端的最后一个元素。不包含任何元素的列表成为空列表。
1)新增
a)lpush
语法:lpush key value[value]
解释:把一个或多个元素插入表头。如果是多个value时,按照从左到右的次序插。返回插入元素的个数
[root@xsf001 ~]# redis-cliredis 127.0.0.1:6379> lpush lst.user zhangsan #插入一个元素(integer) 1redis 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) 4redis 127.0.0.1:6379> lpushx lst.tech wangwu #列表不存在,不插入(integer) 0c)rpush
语法:rpush key [value]
解释:将一个或多个值插入到队列的队尾。多值时,从左到右依次添加。返回列表中元素个数
redis 127.0.0.1:6379> rpush lst.user ls005 #列表存在(integer) 5redis 127.0.0.1:6379> rpush lst.tech tec01 tec02 tec03 #列表不存在(integer) 3d) rpushx
语法:rpushx key value
解释:讲值插入到列表队尾,当且仅当列表key存在时,才添加。返回列表元素个数
redis 127.0.0.1:6379> rpushx lst.tech tec04 #key 存在(integer) 4redis 127.0.0.1:6379> rpushx lst.sub englist #key 不存在(integer) 0e)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) -1redis 127.0.0.1:6379> linsert lst.user after zhangsan zhangsan01 #列表中有多个pivot,以从左到右的第一个为准(integer) 62)查询
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 #设置第三个元素为zhangsan1OKredis 127.0.0.1:6379> lrange lst.user 0 -11) "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 range4)删除
a)ltrim
语法:ltrim key start stop
解释:保留指定区域的元素,其他元素全部删除
redis 127.0.0.1:6379> ltrim lst.user 0 -2OKredis 127.0.0.1:6379> lrange lst.user 0 -11) "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) 2redis 127.0.0.1:6379> lrange lst.user 0 -11) "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 -11) "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) 3redis 127.0.0.1:6379> lrange lst.user 0 -11) "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系列-存储篇list主要操作函数小结
- Redis系列-存储篇list主要操作函数小结
- Redis系列-存储篇string主要操作函数小结
- Redis系列-存储篇hash主要操作函数小结
- Redis系列-存储篇set主要操作函数小结
- Redis系列-存储篇sorted set主要操作函数小结
- Redis系列-存储篇set主要操作函数小结
- Redis系列-存储篇sorted set主要操作函数小结 .
- Redis系列-存储篇sorted set主要操作函数小结
- Redis系列-存储篇hash主要操作函数小结
- Redis系列-存储篇sorted set主要操作函数小结
- Redis系列-存储篇set主要操作函数小结
- Redis系列-存储篇hash主要操作函数小结
- Redis系列-存储篇string主要操作函数小结
- Redis系列-存储篇sorted set主要操作函数小结
- Redis中-list主要操作函数小结
- redis练习手册<九>List主要操作函数小结
- 一般函数指针和类的成员函数指针
- 如果判断一个32bit整数是个回文整数?
- T-SQL 列表达式排序
- 游戏程序员图书推荐
- OSX: Mac 10.8.2关机慢的真正原因分析和临时解决
- Redis系列-存储篇list主要操作函数小结
- 第九章:颜色
- 黑马程序员之数据结构学习笔记:快速排序
- Maven generates jar file with main class setting and dependency libs copy
- Spring config different datasource based on different environment(dev, test, prod) Two ways now
- 利用Camera实现手电筒功能
- 关于getchar()函数_1
- 直接删除数据文件后无法进入系统的解决方案
- 关于随机数_5