wstlwl 发表于 2018-11-4 13:46:07

Redis list数据类型

  List是一个链表结构,主要功能是push、pop、获取一个范围内的素有值等,操作中key理解为链表的的名字,Redis的list表类型其实就是每一个子元素都是string类型的双向链表。我们可以通过push、pop操作从链表的头部或者尾部添加删除元素,这样list既可以作为栈,又可以作为队列
  1、lpush: 在key对应的list头部添加字符串元素,获取数据时,顺序和添加元素的顺序是反的。先进后出
127.0.0.1:6379> lpush mylist hello  
(integer) 1
  
127.0.0.1:6379> lpush mylist world
  
(integer) 2
  
127.0.0.1:6379> lrange mylist 0 -1
  
1) "world"
  
2) "hello"
  2、lrange:获取链表的指定下标位置的元素
  3、rpush:在key对应的list的尾部添加字符串元素,获取数据时和添加元素时的顺序是一样的,先进先出
127.0.0.1:6379> rpush mylist02 hello  
(integer) 1
  
127.0.0.1:6379> rpush mylist02 world
  
(integer) 2
  
127.0.0.1:6379> lrange mylist02 0 -1
  
1) "hello"
  
2) "world"
  4、linsert:在key对应list的特定位置前或者后添加字符串元素
127.0.0.1:6379> linsert mylist before hello hi  
(integer) 3
  
127.0.0.1:6379> lrange mylist 0 -1
  
1) "world"
  
2) "hi"
  
3) "hello"
  5、lset:设置list中指定下标的元素值。用来替换元素
127.0.0.1:6379> lrange mylist 0 -1  
1) "world"
  
2) "hi"
  
3) "hello"
  
127.0.0.1:6379> lset mylist 0 WORLD
  
OK
  
127.0.0.1:6379> lrange mylist 0 -1
  
1) "WORLD"
  
2) "hi"
  
3) "hello"
  6、lrem:从key对应的list中删除n个和value相同的元素。(n lrange mylist 0 -1  
1) "hello"
  
2) "world"
  
3) "hello"
  
4) "WORLD"
  
5) "hi"
  
6) "hello"
  
127.0.0.1:6379> lrem mylist 1 hello
  
(integer) 1
  
127.0.0.1:6379> lrange mylist 0 -1
  
1) "world"
  
2) "hello"
  
3) "WORLD"
  
4) "hi"
  
5) "hello"
  从尾部删除
127.0.0.1:6379> lrange mylist 0 -1  
1) "world"
  
2) "hello"
  
3) "WORLD"
  
4) "hi"
  
5) "hello"
  
127.0.0.1:6379> lrem mylist -1hello
  
(integer) 1
  
127.0.0.1:6379> lrange mylist 0 -1
  
1) "world"
  
2) "hello"
  
3) "WORLD"
  
4) "hi"
  7、ltrim:保留指定key的值范围内的数据
127.0.0.1:6379> lrange mylist02 0 -1  
1) "hello"
  
2) "world"
  
3) "two"
  
4) "one"
  
5) "three"
  
127.0.0.1:6379> ltrim mylist02 1 3 //保留1下标到3小标的元素
  
OK
  
127.0.0.1:6379> lrange mylist02 0 -1
  
1) "world"
  
2) "two"
  
3) "one"
  8、lpop:从list头部删除元素,并返回该元素
127.0.0.1:6379> lrange mylist02 0 -1  
1) "world"
  
2) "two"
  
3) "one"
  
127.0.0.1:6379> lpop mylist02
  
"world"
  
127.0.0.1:6379> lrange mylist02 0 -1
  
1) "two"
  
2) "one"
  9、rpop:从list尾部删除元素,并返回元素
127.0.0.1:6379> lrange mylist02 0 -1  
1) "two"
  
2) "one"
  
127.0.0.1:6379> rpop mylist02
  
"one"
  
127.0.0.1:6379> lrange mylist02 0 -1
  
1) "two"
  10、rpoplpush:从第一个list的尾部移除元素并添加到第二个list的头部
127.0.0.1:6379> lrange mylist 0 -1  
1) "world"
  
2) "hello"
  
3) "WORLD"
  
4) "hi"
  
127.0.0.1:6379> lrange mylist02 0 -1
  
1) "two"
  
127.0.0.1:6379> rpoplpush mylist mylist02
  
"hi"
  
127.0.0.1:6379> lrange mylist 0 -1
  
1) "world"
  
2) "hello"
  
3) "WORLD"
  
127.0.0.1:6379> lrange mylist02 0 -1
  
1) "hi"
  
2) "two"
  11、lindex:返回名称为key的list中index位置的元素
127.0.0.1:6379> lrange mylist 0 -1  
1) "world"
  
2) "hello"
  
3) "WORLD"
  
127.0.0.1:6379> lindex mylist 1
  
"hello"
  12、llen:返回list元素的个数
127.0.0.1:6379> llen mylist  
(integer) 3


页: [1]
查看完整版本: Redis list数据类型