list
redis列表类型内部是使用双向列表实现的,所以可以向/从两端添加/删除元素。
LPUSH key value [value ...] 从左侧添加元素,如果key不存在,初始化一个空列表,再添加。返回插入后,链表的个数。
LPUSHX key value 仅当指定的Key存在时,才在列表的左边插入Value,否则将不会有任何操作发生。返回插入后,链表的个数。
RPUSH key value [value ...] 从右侧添加元素
RPUSHX key value 仅当指定的Key存在时,才在列表的右边插入Value,否则将不会有任何操作发生。返回插入后,链表的个数。
LPOP key 从两端弹出元素
RPOP key
LLEN key 获取列表中元素个数
LRANGE key start end 获取列表片段,左边在前,右边在后。起始索引为0,最右边元素索引可以为-1,右边第二个索引可以为-2,以此类推。。。索引从左到右,如果start比end靠右,则返回空列表。end值可以大于长度范围。
LREM key count value 从左边(count > 0)开始,删除前count个值为value的元素;从右边(count < 0)开始,删除前|count|个值为value的元素 ; 删除所有值为value的元素(count = 0)。返回实际删除元素的个数。
LINDEX key index 获取指定索引的元素值
LSET key index value 设置指定索引的元素值
LTRIM key start end 删除指定索引范围之外的所有元素。start和end的规则与lrange的相同。
LINSERT key BEFORE|AFTER pivot value 从左到右查找pivot,将value插在其前面(BEFORE)或者后面(AFTER)。 返回插入后,元素总个数。
RPOPLPUSH source destination 删除source最右边的元素,插入到destination最左边。返回操作的元素。
127.0.0.1:6379> lpush num 1 2 ## 先push 1,再push 2 (integer) 2 127.0.0.1:6379> rpush num 3 4 ##先push 3,再push 4 (integer) 4 127.0.0.1:6379> lrange num 0 -1 ##从0开始,显示4个元素 1) "2" 2) "1" 3) "3" 4) "4" 127.0.0.1:6379> llen num (integer) 4 127.0.0.1:6379> lrange num -1 -2 ##start比end靠右,返回空列表 (empty list or set) 127.0.0.1:6379> lrange num -2 -1 ##从右边第二到右边第一 1) "3" 2) "4" 127.0.0.1:6379> lpush num 3 4 3 (integer) 7 127.0.0.1:6379> lrange num 0 -1 1) "3" 2) "4" 3) "3" 4) "2" 5) "1" 6) "3" 7) "4" 127.0.0.1:6379> lrem num 2 3 (integer) 2 ## 一共删除了两个 127.0.0.1:6379> lrange num 0 -1 1) "4" 2) "2" 3) "1" 4) "3" 5) "4" 127.0.0.1:6379> 127.0.0.1:6379> lrem num 0 4 ##删除所有值为4元素 (integer) 2 ## 一共删除了两个 127.0.0.1:6379> lrange num 0 -1 1) "2" 2) "1" 3) "3" 127.0.0.1:6379> lrem num 2 3 (integer) 1 ##只删除了一个元素 127.0.0.1:6379> lrange num 0 -1 1) "2" 2) "1" 127.0.0.1:6379> lpush num 1 3 (integer) 4 127.0.0.1:6379> linsert num BEFORE 1 4 ##将4插入左边第一个1的前面 (integer) 5 ##插入后,一共有5个元素 127.0.0.1:6379> lrange num 0 -1 1) "3" 2) "4" 3) "1" 4) "2" 5) "1" 127.0.0.1:6379> rpoplpush num num1 ##转移一个元素 "1" 127.0.0.1:6379> lrange num1 0 -1 1) "1" 127.0.0.1:6379> rpoplpush num num1 "2" 127.0.0.1:6379> lrange num1 0 -1 1) "2" 2) "1" 127.0.0.1:6379> lrange num 0 -1 ##num中转移走了2个元素 1) "3" 2) "4" 3) "1" 127.0.0.1:6379> lpushx num 5 ##键名num存在,push成功 (integer) 4 127.0.0.1:6379> lrange num2 0 -1 (empty list or set) 127.0.0.1:6379> lpushx num2 1 ##键名num2不存在,push失败 (integer) 0 127.0.0.1:6379> lrange num2 0 -1 (empty list or set)










