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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章