Redis list数据类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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<0从尾部删除,n=0全部删除)
从头部删除
127.0.0.1:6379> 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 -1 hello (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
本文出自 “zengestudy” 博客,请务必保留此出处http://zengestudy.blog.51cto.com/1702365/1854041
以上是关于Redis list数据类型的主要内容,如果未能解决你的问题,请参考以下文章