Redis语法介绍之Lists

Lists(列表)常用命令有:

一、增

127.0.0.1:6379> lpush list01 1 2 3 4 rr //向列表左侧添加5个数据
(integer) 5
127.0.0.1:6379> lrange list01 0 -1 // 查询出类表所有数据 从上到下索引是0, 1, 2 ...
1) "rr"
2) "4"
3) "3"
4) "2"
5) "1"
127.0.0.1:6379> rpush list02 0 1 2 3 4 //向列表左侧添加数据
(integer) 5
127.0.0.1:6379> lrange list02 0 -1
1) "0"
2) "1"
3) "2"
4) "3"
5) "4"

二、删

127.0.0.1:6379> lpop list01 // 弹出最左侧数据, 每次弹出一个
"rr"
127.0.0.1:6379> rpop list02 // 弹出右侧数据, 每次弹出一个
"4"
127.0.0.1:6379> lrange list02 0 -1
1) "0"
2) "1"
3) "2"
4) "3"
127.0.0.1:6379> lrem list03 2 2 // LREM KEY_NAME COUNT VALUE 删除两个 2
(integer) 2 

三、改

127.0.0.1:6379> lrange list01 0 -1        
1) "5"                                    
2) "4"                                    
3) "3"                                    
4) "2"                                    
127.0.0.1:6379> lrange list02 0 -1        
1) "0"                                    
2) "1"                                    
3) "2"                                    
4) "3"                                    
127.0.0.1:6379> rpoplpush list01 list02   //弹出list01的左边数据给列表list02
"2"                                       
127.0.0.1:6379> lrange list02 0 -1        
1) "2"                                    
2) "0"                                    
3) "1"                                    
4) "2"                                    
5) "3"                                    
127.0.0.1:6379> lrange list01 0 -1        
1) "5"                                    
2) "4"                                    
3) "3"                                    
127.0.0.1:6379> lset list01 0 x // 设置索引0的值为x          
OK                                        
127.0.0.1:6379> lrange list01 0 -1        
1) "x"                                    
2) "4"                                    
3) "3"                                    
127.0.0.1:6379> linsert list01 before x y //在x前插入y
(integer) 4                               
127.0.0.1:6379> lrange list01 0 -1        
1) "y"                                    
2) "x"                                    
3) "4"                                    
4) "3"                                    
127.0.0.1:6379> linsert list01 after x z  //在x后插入y
(integer) 5                               
127.0.0.1:6379> lrange list01 0 -1
 1) "7"
 2) "6"
 3) "5"
 4) "4"
 5) "3"
 6) "2"
 7) "1"
 8) "4"
 9) "3"
10) "2"
11) "1"
127.0.0.1:6379> ltrim list01 2 5 //截取索引2 到 5的值 并重新赋值给列表
OK
127.0.0.1:6379> lrange list01 0 -1
1) "5"
2) "4"
3) "3"
4) "2"

四、查

127.0.0.1:6379> lindex list02 1 // 输出索引1的值
"1"
127.0.0.1:6379> lindex list02 4
(nil)
127.0.0.1:6379> lindex list02 3
"3"
127.0.0.1:6379> llen list02 // 返回列表的长度
(integer) 4

五、性能总结

  • 是一个字符串链表,left、right 都可以插入添加
  • 如果键不存在, 创建新的链表
  • 如果键已存在, 新增内容
  • 链表的操作无论是头和尾效率都极高,但是假如是对中间元素进行操作, 效率就很惨淡了
    原文作者:binbin
    原文地址: https://segmentfault.com/a/1190000020512463
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞