1、定性:
List是一个链表结构,主要功能是push、pop、获取一个范围之内的所有值等等,操作中key理解为链表的名称。Redis的list类型其实就是一个每个子元素都是string类型的双向链表。我们可以铜驼push、pop操作从链表的头部或者尾部添加删除元素,这样list既可以作为栈,又可以作为队列。
2、常用方法:
2.1、lpush方法:在key对应的list的头部添加字符串元素。
eg:redis 127.0.0.1:6379>lpush mylist “world”
(integer)1
redis 127.0.0.1:6379>lpush mylist “hello”
(integer)2
redis 127.0.0.1:6379>lrange mylist 0 -1 //从头第一个元素到尾第一个元素。
“hello”
“world”
2.2、rpush方法:从key对应的list的尾部添加字符串元素
不再举例,和2.1类似,只是元素压入方向不一样而已。
2.3、linsert方法:在key对应list位置前或者后添加任意字符串。
弥补了lpush,rpush方法只能在一端插入的不足。
eg:redis 127.0.0.1:6379>lpush list3 “one”
redis127.0.0.1:6379>lpush list3 “two”
redis127.0.0.1:6379>linsert list3 before one three
redis127.0.0.1:6379>lrange list3 0 -1
“two”
“three”
“one”
2.4、lset方法:设置指定下标的元素值。
redis127.0.0.1:6379>rpush mylist4 “hello”
redis127.0.0.1:6379>lset mylist4 0 “world”
redis127.0.0.1:6379>lrange mylist4 0 -1
“world”
2.5、lrem:从key对应的list中删除n个和value相同的元素。(n<0从尾删除,n=0全部删除)
redis127.0.0.1:6379>lpush list5 “one”
redis 127.0.0.1:6379>lpush list5 “one”
redis 127.0.0.1:6379>lpush list5 “two”
redis 127.0.0.1:6379>lpush list5 “three”
redis 127.0.0.1:6379>lpush list5 “one”
redis 127.0.0.1:6379>lrem list5 2 “one”
(integer)2
redis 127.0.0.1:6379>lrange list5 0 -1
“two”
“three”
“one”
2.6、ltrim方法:保留指定key的值范围内的数据(包括两侧范围值)
redis 127.0.0.1:6379>rpush mylist6 “one”
redis 127.0.0.1:6379>rpush mylist6 “two”
redis 127.0.0.1:6379>rpush mylist6“three”
redis 127.0.0.1:6379>rpush mylist6“four”
redis 127.0.0.1:6379>lrim mylist6 1 2
(integer)2
redis 127.0.0.1:6379>lrange mylist6 0 -1
“two”
“three”
2.7、lpop方法:从list的头部删除元素,并返回删除元素。
redis 127.0.0.1:6379>rpush mylist10 “one”
redis 127.0.0.1:6379>rpush mylist10“two”
redis 127.0.0.1:6379>rpush mylist10“three”
redis 127.0.0.1:6379>lpop mylist10
“one”
2.8、rpop方法:从list的尾部删除元素,并返回删除元素。
2.9、rpoplpush方法:从第一个list的尾部移除元素到第二个list的头部。
eg:redis 127.0.0.1:6379>rupshmylist11 “one”
redis 127.0.0.1:6379>rpush mylist11“two”
redis 127.0.0.1:6379>rpush mylist12“three”
redis 127.0.0.1:6379>rpush mylist13“four”
redis 127.0.0.1:6379>rpoplpush mylist11mylist12
redis 127.0.0.1:6379>lrange mylist11 0-1
“one”
redis 127.0.0.1:6379>lrange mylist11 0-1
“two”
“three”
“four”
2.10、lindex方法;返回名称为key的list中index位置的元素。
eg: redis 127.0.0.1:6379>lpush mylist12“one”
redis 127.0.0.1:6379>lpush mylist12“two”
redis 127.0.0.1:6379>lindex mylist12 0
“one”
2.11、llen方法:返回key对应的list的长度。
eg:redis 127.0.0.1:6379>rpushmylist13 “one”
redis 127.0.0.1:6379>rpush mylist13“two”
redis 127.0.0.1:6379>rpush mylist13“three”
redis 127.0.0.1:6379>llen mylist13
(integer)3