redis-list(列表)

redis的列表是使用双向链表实现的。所以向两端添加元素时间复杂度为0(1),不过使用链表的代价是查找较慢。

1、lpush 、rpush (向左端、右端添加元素),lrange 取一定范围的元素的值,

127.0.0.1:6379> lpush listexample 2
(integer) 1
127.0.0.1:6379> lpush listexample 3 4 5  //一次插入多个元素
(integer) 4
127.0.0.1:6379> lrange listexample 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
127.0.0.1:6379> rpush listexample 7 8 9
(integer) 7
127.0.0.1:6379> lrange listexample 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "7"
6) "8"

2、lpop 、rpop 从列表两端弹出元素

3、llen 获取表中元素的个数

4、lrem 删除列表中指定的值  lrem key count value (删除key 中 值为value的键,一共删除为count个)  

注:当count > 0 时,从左连开始删除 ,当count<=时,从右边开始删除  , 当count=0时,全部删除

127.0.0.1:6379> lrange listexample 0 -1
 1) "5"
 2) "5"
 3) "5"
 4) "5"
 5) "5"
 6) "5"
 7) "5"
 8) "4"
 9) "3"
10) "2"
11) "7"
12) "8"
13) "9"
127.0.0.1:6379> lrem listexample 3 5 //删除3个值为5的元素
(integer) 3
127.0.0.1:6379> lrange listexample 0 -1
 1) "5"
 2) "5"
 3) "5"
 4) "5"
 5) "4"
 6) "3"
 7) "2"
 8) "7"
 9) "8"
10) "9"

127.0.0.1:6379> lpush listexample 3 5 6 7 8 5 3 2 5 9 5
(integer) 17
127.0.0.1:6379> lrange listexample 0 -1
 1) "5"
 2) "9"
 3) "5"
 4) "2"
 5) "3"
 6) "5"
 7) "8"
 8) "7"
 9) "6"
10) "5"
11) "3"
12) "4"
13) "3"
14) "2"
15) "7"
16) "8"
17) "9"
127.0.0.1:6379> lrem listexample -2 5
(integer) 2
127.0.0.1:6379> lrange listexample 0 -1
 1) "5"
 2) "9"
 3) "5"
 4) "2"
 5) "3"
 6) "8"
 7) "7"
 8) "6"
 9) "3"
10) "4"
11) "3"
12) "2"
13) "7"
14) "8"
15) "9"

5、lindex key inde (获得指定索引的元素值) lindex key index

      lset kye index value (设置索引的元素值)

127.0.0.1:6379> lindex listexample 3
"2"
127.0.0.1:6379> lindex listexaple -1
(nil)
127.0.0.1:6379> lindex listexample -1
"9"
127.0.0.1:6379> lset listexample 4
(error) ERR wrong number of arguments for 'lset' command
127.0.0.1:6379> lpush listexample 44
(integer) 16
127.0.0.1:6379> lset listexample 5 5555
OK
127.0.0.1:6379> lrange listexample 0 -1
 1) "44"
 2) "5"
 3) "9"
 4) "5"
 5) "2"
 6) "5555"
 7) "8"
 8) "7"
 9) "6"
10) "3"
11) "4"
12) "3"
13) "2"
14) "7"
15) "8"
16) "9"
6、ltrim key start end (只保留列表指定的片段)


你可能感兴趣的:(redis-list(列表))