Redis 列表是简单的字符串列表,按照插入顺序排序
实例
127.0.0.1:6379> lpush namekey redis
(integer) 1
127.0.0.1:6379> lpush namekey mongodb
(integer) 2
127.0.0.1:6379> lpush namekey mysql
(integer) 3
127.0.0.1:6379> lrange namekey 0 0
1) "mysql"
127.0.0.1:6379> lrange namekey 0 1
1) "mysql"
2) "mongodb"
127.0.0.1:6379> lrange namekey 0 2
1) "mysql"
2) "mongodb"
3) "redis"
使用了 LPUSH 将三个值插入了名为 namekey 的列表当中
Redis 列表命令
1、BLPOP key1 [key2 ] timeout (秒)
移出并获取列表的第一个元素(也就是最后一个插入的元素), 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
127.0.0.1:6379> blpop namekey 2
1) "namekey"
2) "mysql"
127.0.0.1:6379> blpop namekey1 5
(nil)
(5.10s)
2、BRPOP key1 [key2 ] timeout
移出并获取列表的最后一个元素(也就是第一个插入的元素), 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
127.0.0.1:6379> brpop namekey 3
1) "namekey"
2) "redis"
3、BRPOPLPUSH source destination timeout
从source 列表中弹出最后一个元素,将弹出的元素插入到另外一个destination 列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
127.0.0.1:6379> lpush namekey1 java
(integer) 1
127.0.0.1:6379> lpush namekey1 php
(integer) 2
127.0.0.1:6379> lrange namekey1 0 10
1) "php"
2) "java"
127.0.0.1:6379> brpoplpush namekey namekey1 2
"mongodb"
127.0.0.1:6379> lrange namekey1 0 10
1) "mongodb"
2) "php"
3) "java"
4、LINDEX key index 通过索引获取列表中的元素
127.0.0.1:6379> lindex namekey1 0
"mongodb"
127.0.0.1:6379> lindex namekey1 1
"php"
127.0.0.1:6379> lindex namekey1 2
"java"
5、LINSERT key BEFORE|AFTER pivot value 在列表的元素前或者后插入元素
127.0.0.1:6379> linsert namekey1 before php hadoop
(integer) 4
127.0.0.1:6379> lrange namekey1 0 10
1) "mongodb"
2) "hadoop"
3) "php"
4) "java"
127.0.0.1:6379> linsert namekey1 after php spark
(integer) 5
127.0.0.1:6379> lrange namekey1 0 10
1) "mongodb"
2) "hadoop"
3) "php"
4) "spark"
5) "java"
6、LLEN key 获取列表长度
127.0.0.1:6379> llen namekey1
(integer) 5
7、LPOP key 移出并获取列表的第一个元素(也就是最上面的元素)
127.0.0.1:6379> lpop namekey1
"mongodb"
127.0.0.1:6379> lrange namekey1 0 10
1) "hadoop"
2) "php"
3) "spark"
4) "java"
8、LPUSH key value1 [value2] 将一个或多个值插入到列表头部
127.0.0.1:6379> lpush namekey1 scala
(integer) 5
127.0.0.1:6379> lrange namekey1 0 10
1) "scala"
2) "hadoop"
3) "php"
4) "spark"
5) "java"
9、LPUSHX key value 将一个值插入到已存在的列表头部
127.0.0.1:6379> lpushx namekey1 zookeeper
(integer) 6
127.0.0.1:6379> lrange namekey1 0 10
1) "zookeeper"
2) "scala"
3) "hadoop"
4) "php"
5) "spark"
6) "java"
10、LRANGE key start stop 获取列表指定范围内的元素
127.0.0.1:6379> lrange namekey1 0 10
1) "zookeeper"
2) "scala"
3) "hadoop"
4) "php"
5) "spark"
6) "java"
11、LREM key count value 移除列表元素
127.0.0.1:6379> lrem namekey1 1 zookeeper
(integer) 1
127.0.0.1:6379> lrange namekey1 0 10
1) "scala"
2) "hadoop"
3) "php"
4) "spark"
5) "java"
12、LSET key index value 通过索引设置列表元素的值(最上面的元素的索引为0)
127.0.0.1:6379> lset namekey1 0 hbase
OK
127.0.0.1:6379> lrange namekey1 0 10
1) "hbase"
2) "hadoop"
3) "php"
4) "spark"
5) "java"
13、LTRIM key start stop
对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
127.0.0.1:6379> ltrim namekey1 0 3
OK
127.0.0.1:6379> lrange namekey1 0 10
1) "hbase"
2) "hadoop"
3) "php"
4) "spark"
14、RPOP key 移除并获取列表最后一个元素
127.0.0.1:6379> rpop namekey1
"spark"
15、RPOPLPUSH source destination 移除source 列表的最后一个元素,并将该元素添加到另一个destination 列表的最上面并返回
127.0.0.1:6379> lrange namekey 0 10
"mysql"
127.0.0.1:6379> rpoplpush namekey namekey1
"mysql"
127.0.0.1:6379> lrange namekey1 0 10
1) "mysql"
2) "hbase"
3) "hadoop"
4) "php"
16、RPUSH key value1 [value2] 在列表中添加一个或多个值(添加到最后面)
127.0.0.1:6379> rpush namekey1 aaa bbb
(integer) 6
127.0.0.1:6379> lrange namekey1 0 10
1) "mysql"
2) "hbase"
3) "hadoop"
4) "php"
5) "aaa"
6) "bbb"
17、RPUSHX key value 为已存在的列表添加值(添加到最后面)
127.0.0.1:6379> rpushx namekey1 kkk
(integer) 4
127.0.0.1:6379> lrange namekey1 0 10
1) "mysql"
2) "hbase"
3) "hadoop"
4) "php"
5) "aaa"
6) "bbb"
7) "kkk"