Redis 列表(List)

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"


發佈了79 篇原創文章 · 獲贊 19 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章