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"