《Redis使用手册之列表》
目录
- **《Redis使用手册之列表》**
- **LPUSH:将元素推入列表左端**
- **LPUSHX、RPUSHX:只对已存在的列表执行推入操作**
- **LPOP:弹出列表最左端的元素**
- **RPOP:弹出列表最右端的元素**
- **RPOPLPUSH:将右端弹出的元素推入左端**
- **LLEN:获取列表的长度**
- **LINDEX:获取指定索引上的元素**
- **LRANGE:获取指定索引范围上的元素**
- **LSET:为指定索引设置新元素**
- **LINSERT:将元素插入列表**
- **4.12 LTRIM:修剪列表**
- **LREM:从列表中移除指定元素**
- **BLPOP:阻塞式左端弹出操作**
- **BRPOP:阻塞式右端弹出操作**
- **BRPOPLPUSH:阻塞式弹出并推入操作**
 
 
LPUSH:将元素推入列表左端
-  127.0.0.1:6379> lpush list aa bb cc 
 (integer) 3
 127.0.0.1:6379> rpush list dd ee ff
 (integer) 6lpush :将元素推入列表左端 lpush list aa bb cc 可一次推入多个元素 LPUSH:将元素推入列表左端 
LPUSHX、RPUSHX:只对已存在的列表执行推入操作
-  127.0.0.1:6379> lpushx list1 aa 
 (integer) 0
 127.0.0.1:6379> rpushx list1 aa
 (integer) 0LPUSHX命令只会在列表已经存在的情况下,将元素推入列表左端 RPUSHX命令只会在列表已经存在的情况下,将元素推入列表右端。 LPUSHX命令只会在列表已经存在的情况下,将元素推入列表左端。●RPUSHX命令只会在列表已经存在的情况下,将元素推入列表右端。 
LPOP:弹出列表最左端的元素
-  127.0.0.1:6379> lpop list 
 “cc”
 127.0.0.1:6379> lpop list
 “bb”
 127.0.0.1:6379> lpop list
 “aa”LPOP:弹出列表最左端的元素。 后进先出 LPOP:弹出列表最左端的元素 
RPOP:弹出列表最右端的元素
-  127.0.0.1:6379> rpop list 
 “ff”RPOP:弹出列表最右端的元素 RPOP:弹出列表最右端的元素 
RPOPLPUSH:将右端弹出的元素推入左端
-  127.0.0.1:6379> rpush list1 a b c 
 (integer) 3
 127.0.0.1:6379> rpush list2 d e f
 (integer) 3
 127.0.0.1:6379> rpoplpush list1 list2
 “c”
 127.0.0.1:6379> rpoplpush list1 list2
 “b”
 127.0.0.1:6379> rpoplpush list1 list2
 “a”
 127.0.0.1:6379> rpoplpush list1 list1
 (nil)127.0.0.1:6379> rpoplpush list2 list3 
 “f”列表 list1中的元素已经全部被推至list2中。 RPOPLPUSH:将右端弹出的元素推入左端 RPOPLPUSH source target 源列表和目标列表相同 在这种情况下,RPOPLPUSH命令的效果相当于将列表最右端的元素变成列表最左端的元素。 处理空列表 如果用户传给RPOPLPUSH命令的源列表并不存在,那么RPOPLPUSH命令将放弃执行弹出和推入操作,只返回一个空值表示命令执行失败。 如果源列表非空,但是目标列表为空,RPOPLPUSH命令将正常执行弹出操作和推入操作 RPOPLPUSH:将右端弹出的元素推入左端 
LLEN:获取列表的长度
-  127.0.0.1:6379> llen list1 
 (integer) 0
 127.0.0.1:6379> llen list2
 (integer) 5LLEN:获取列表的长度 LLEN:获取列表的长度 
LINDEX:获取指定索引上的元素
-  127.0.0.1:6379> lindex list2 0 
 “a”
 127.0.0.1:6379> lindex list2 2
 “c”
 127.0.0.1:6379> lindex list2 1
 “b”
 127.0.0.1:6379> lindex list2 -1
 “e”
 127.0.0.1:6379> lindex list2 -2
 “d”LINDEX:获取指定索引上的元素。 正数索引从列表的左端开始计算,一次向右端递增:最左端元素的索引为0 负数索引从列表的右端开始计算,一次向左端递减:最右端元素的索引为-1. LINDEX:获取指定索引上的元素 
LRANGE:获取指定索引范围上的元素
127.0.0.1:6379> lrange list2 0 -1
- “a”
- “b”
- “c”
- “d”
- “e”

LRANGE:获取指定索引范围上的元素 LRANGE list start end
LRANGE:获取指定索引范围上的元素
LSET:为指定索引设置新元素
-  127.0.0.1:6379> lset list2 -1 f 
 OK
 127.0.0.1:6379> lrange list2 0 -1- “a”
- “b”
- “c”
- “d”
- “f”
  LSET:为指定索引设置新元素 LSET list index new_element LSET:为指定索引设置新元素 
LINSERT:将元素插入列表
-  127.0.0.1:6379> linsert list2 after f g 
 (integer) 6
 127.0.0.1:6379> lrange list2 0 -1- “a”
- “b”
- “c”
- “d”
- “f”
- “g”
  LINSERT:将元素插入列表 LINSERT list BEFORE|AFTER target_element new_element LINSERT:将元素插入列表 
4.12 LTRIM:修剪列表
-  127.0.0.1:6379> ltrim list2 0 4 
 OK
 127.0.0.1:6379> lrange list2 0 -1- “a”
- “b”
- “c”
- “d”
- “f”
  LTRIM:修建列表 LTRIM命令接受一个列表和一个索引范围为参数,并移除列表中位于索引范围之外的所有元素,只保留给定范围之内的元素。 LTRIM list start end 与LRANGE命令一样,LTRIM命令不仅可以处理正数索引,还可以处理负数索引。 LTRIM:修剪列表LTRIM命令接受一个列表和一个索引范围作为参数,并移除列表中位于给定索引范围之外的所有元素,只保留给定范围之内的元素 
LREM:从列表中移除指定元素
-  127.0.0.1:6379> rpush list5 a b b a c c a 
 (integer) 7
 127.0.0.1:6379> rpush list6 a b b a c c a
 (integer) 7
 127.0.0.1:6379> rpush list7 a b b a c c a
 (integer) 7
 127.0.0.1:6379> lrem list5 0 a
 (integer) 3
 127.0.0.1:6379> lrange list5 0 -1- “b”
- “b”
- “c”
- “c”
 127.0.0.1:6379> lrem list6 1 a
 (integer) 1
 127.0.0.1:6379> lrange list6 0 -1
- “b”
- “b”
- “a”
- “c”
- “c”
- “a”
 127.0.0.1:6379> lrem list7 -1 a
 (integer) 1
  LREM:从列表中移除指定元素 LREM list count element count参数的值决定了LREM命令移除元素的方式: 如果count参数的值等于0,那么LREM命令将移除列表中包含的所有指定元素。 如果count参数的值大于0,那么LREM命令将从列表的左端开始向右进行检查,并移除最先发现的count个指定元素。 如果count参数的值小于0,那么LREM命令将从列表的右端开始向左进行检查,并移除最先发现的abs(count)个指定元素。abs即count的绝对值。 LREM:从列表中移除指定元素 
BLPOP:阻塞式左端弹出操作
-  127.0.0.1:6379> blpop list2 5 - “list2”
- “a”
 127.0.0.1:6379> blpop list2 5 5
- “list2”
- “b”
 127.0.0.1:6379> blpop list2 50
- “list2”
- “c”
 
BLPOP:阻塞式左端弹出操作 BLPOP命令式带有阻塞的左端弹出操作,它接受任意多个列表以及一个妙计精度的超时时限作为参数: BLPOP list [list …] timeout
BLPOP:阻塞式左端弹出操作BLPOP命令是带有阻塞功能的左端弹出操作,它接受任意多个列表以及一个秒级精度的超时时限作为参数:
BRPOP:阻塞式右端弹出操作
-  127.0.0.1:6379> brpop list2 30 30 - “list2”
- “f”
 BRPOP:阻塞式右端弹出操作 BRPOP命令式带有阻塞功能的右端弹出操作,除了弹出的方向不同之外,其他方面都和BLPOP命令一样。 BRPOP:阻塞式右端弹出操作BRPOP命令是带有阻塞功能的右端弹出操作,除了弹出的方向不同之外,其他方面都和BLPOP命令一样: 
BRPOPLPUSH:阻塞式弹出并推入操作
- BRPOPLPUSH:阻塞式弹出并推入操作 BRPOPLPUSH命令式RPOPLPUSH命令的阻塞版本,BRPOPPUSH命令接受一个源列表、一个目标列表以及一个妙级精度的超时时限作为参数: BRPOPLPUSH source target timeout
BRPOPLPUSH:阻塞式弹出并推入操作BRPOPLPUSH命令是RPOPLPUSH命令的阻塞版本,BRPOPLPUSH命令接受一个源列表、一个目标列表以及一个秒级精度的超时时限作为参数: