博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
峰Redis学习(4)Redis 数据结构(List的操作)
阅读量:6179 次
发布时间:2019-06-21

本文共 3300 字,大约阅读时间需要 11 分钟。

第四节:Redis 数据结构之List 类型  
存储list:
ArrayList使用数组方式
LinkedList使用双向链接方式
 
双向链接表中增加数据
双向链接表中删除数据
 
存储list常用命令
两端添加
两端弹出
扩展命令
 
下面是操作命令的例子:
 
lpush 方式从左边开始添加
127.0.0.1:6379> lpush list1 a b c d(integer) 4127.0.0.1:6379> lpush list1 1 2 3 4(integer) 8127.0.0.1:6379> lrange list1 0 -11) "4"2) "3"3) "2"4) "1"5) "d"6) "c"7) "b"8) "a"127.0.0.1:6379> lrange list1 0 41) "4"2) "3"3) "2"4) "1"5) "d"

 

rpush 从右端开始添加(一般人比较习惯这种方式)
127.0.0.1:6379> rpush list2 a b c d(integer) 4127.0.0.1:6379> rpush list2 1 2 3 4(integer) 8127.0.0.1:6379> lrange list2 0 -11) "a"2) "b"3) "c"4) "d"5) "1"6) "2"7) "3"8) "4"

 

rpop 右侧弹出集合元素
127.0.0.1:6379> lrange list2 0 -11) "a"2) "b"3) "c"4) "d"5) "1"6) "2"7) "3"8) "4"127.0.0.1:6379> rpop list2"4"127.0.0.1:6379> lrange list2 0 -11) "a"2) "b"3) "c"4) "d"5) "1"6) "2"7) "3"

 

lpop 左侧弹出集合元素
127.0.0.1:6379> lrange list2 0 -11) "a"2) "b"3) "c"4) "d"5) "1"6) "2"7) "3"127.0.0.1:6379> lpop list2"a"127.0.0.1:6379> lrange list2 0 -11) "b"2) "c"3) "d"4) "1"5) "2"6) "3"

 

llen查看元素个数
127.0.0.1:6379> llen list2(integer) 6

 

lpushx 集合头部插入元素
127.0.0.1:6379> lrange list2 0 -11) "b"2) "c"3) "d"4) "1"5) "2"6) "3"127.0.0.1:6379> lpushx list2 zhangsan(integer) 7127.0.0.1:6379> lrange list2 0 -11) "zhangsan"2) "b"3) "c"4) "d"5) "1"6) "2"7) "3"

 

rpushx 集合尾部插入元素
127.0.0.1:6379> lrange list2 0 -11) "zhangsan"2) "b"3) "c"4) "d"5) "1"6) "2"7) "3"127.0.0.1:6379> rpushx list2 lisi(integer) 8127.0.0.1:6379> lrange list2 0 -11) "zhangsan"2) "b"3) "c"4) "d"5) "1"6) "2"7) "3"8) "lisi"

 

lpush集合头部插入多个元素
rpush集合尾部插入多个元素
127.0.0.1:6379> lrange list2 0 -11) "b"2) "c"3) "d"4) "1"5) "2"6) "3"127.0.0.1:6379> lpush list2 a1 a2(integer) 8127.0.0.1:6379> lrange list2 0 -11) "a2"2) "a1"3) "b"4) "c"5) "d"6) "1"7) "2"8) "3"
127.0.0.1:6379> lrange list2 0 -11) "b"2) "c"3) "d"4) "1"5) "2"6) "3"127.0.0.1:6379> rpush list2 zhangsan lisi(integer) 8127.0.0.1:6379> lrange list2 0 -11) "b"2) "c"3) "d"4) "1"5) "2"6) "3"7) "zhangsan"8) "lisi"

 

lrem 从指定方向删除指定个数的指定元素
127.0.0.1:6379> lpush list4 1 3 2 3 2 1 2 1 3(integer) 9127.0.0.1:6379> lrange list4 0 -11) "3"2) "1"3) "2"4) "1"5) "2"6) "3"7) "2"8) "3"9) "1"
从左边开始删除2个1
127.0.0.1:6379> lrem list4 2 1(integer) 2127.0.0.1:6379> lrange list4 0 -11) "3"2) "2"3) "2"4) "3"5) "2"6) "3"7) "1"
从右边开始删除2个3
127.0.0.1:6379> lrem list4 -2 3(integer) 2127.0.0.1:6379> lrange list4 0 -11) "3"2) "2"3) "2"4) "2"5) "1"
删除所有2
127.0.0.1:6379> lrem list4 0 2(integer) 3127.0.0.1:6379> lrange list4 0 -11) "3"2) "1"

 

lset 设置集合指定索引的值
127.0.0.1:6379> lrange list1 0 -11) "4"2) "3"3) "2"4) "1"5) "d"6) "c"7) "b"8) "a"127.0.0.1:6379> lset list1 3 xxxxOK127.0.0.1:6379> lrange list1 0 -11) "4"2) "3"3) "2"4) "xxxx"5) "d"6) "c"7) "b"8) "a"

 

linsert 在集合里插入指定元素
在xxxx元素之前插入aa
127.0.0.1:6379> linsert list1 before xxxx aa(integer) 9127.0.0.1:6379> lrange list1 0 -11) "4"2) "3"3) "2"4) "aa"5) "xxxx"6) "d"7) "c"8) "b"9) "a"
在xxxx元素之后插入bb
127.0.0.1:6379> linsert list1 after xxxx bb(integer) 10127.0.0.1:6379> lrange list1 0 -1 1) "4" 2) "3" 3) "2" 4) "aa" 5) "xxxx" 6) "bb" 7) "d" 8) "c" 9) "b"10) "a"

 

rpoplpush 把A集合尾部元素弹出并插入到B集合头部
127.0.0.1:6379> rpush list5 a b c(integer) 3127.0.0.1:6379> rpush list6 1 2 3(integer) 3127.0.0.1:6379> rpoplpush list5 list6"c"127.0.0.1:6379> lrange list5 0 -11) "a"2) "b"127.0.0.1:6379> lrange list6 0 -11) "c"2) "1"3) "2"4) "3"

 

转载于:https://www.cnblogs.com/tenWood/p/8684843.html

你可能感兴趣的文章
不定项选择题
查看>>
netty 分析博客
查看>>
Spring Cloud构建微服务架构服务注册与发现
查看>>
BCGControlBar教程:如何将MFC控件的BCGControlBarBCGSuite添加到对话框中
查看>>
深入理解Java8 Lambda表达式
查看>>
Java集合框架面试问题集锦
查看>>
Java每天10道面试题,跟我走,offer有!(六)
查看>>
四种途径提高RabbitMQ传输数据的可靠性(二)
查看>>
c语言实现多态
查看>>
Linux 在 TOP 命令中切换内存的显示单位
查看>>
浏览器的加载与页面性能优化
查看>>
RabbitMQ学习总结(2)——安装、配置与监控
查看>>
Java基础学习总结(5)——多态
查看>>
shell: demo
查看>>
使用vc+如何添加特殊字符的控件(创世纪篇)
查看>>
Linux下的常用信号
查看>>
3.UIImageView+category
查看>>
2.UIView+category
查看>>
Android ImageLoader使用
查看>>
LDTP
查看>>