加粗样式一 进入Redis-cli
window版本就直接:点击`
redis-cli.exe
`linux版本就是启动服务就可以了,命令如下
redis-cli
二 命令说明和演示
*tips:这篇我们总结 “List”的用法,Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。因为是链表,所以在访问头或尾还是比较的快,但是访问链中间的数据的时候就会比较的慢。
Blpop
说明
- Redis Blpop 命令移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
语法
redis 127.0.0.1:6379> BLPOP LIST1 LIST2 .. LISTN TIMEOUT
实例
redis 127.0.0.1:6379>blpop list1 100
#不存在 ,就会阻塞,阻塞的时间大概是100秒。
Brpop
说明
- Redis Brpop 命令移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
语法
redis 127.0.0.1:6379> BRPOP LIST1 LIST2 .. LISTN TIMEOUT
实例
127.0.0.1:6379> rpush list1 a b c
(integer) 3
127.0.0.1:6379> brpop list1 0
1) "list1"
2) "c"
127.0.0.1:6379> brpop list1 1
1) "list1"
2) "b"
127.0.0.1:6379> brpop list1 2
1) "list1"
2) "a"
Lindex
说明
- Redis Lindex 命令用于通过索引获取列表中的元素。你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
语法
redis 127.0.0.1:6379> LINDEX KEY_NAME INDEX_POSITION
实例
127.0.0.1:6379> lpush mylist "world"
(integer) 1
127.0.0.1:6379> lpush mylist "hello"
(integer) 2
127.0.0.1:6379> lindex mylist 0
"hello"
127.0.0.1:6379> lindex mylist 1
"world"
127.0.0.1:6379> lindex mylist 2
(nil)
Lindex
说明
- Redis Linsert 命令用于在列表的元素前或者后插入元素。当指定元素不存在于列表中时,不执行任何操作。
当列表不存在时,被视为空列表,不执行任何操作。
如果 key 不是列表类型,返回一个错误。
语法
redis 127.0.0.1:6379> LINSERT key BEFORE|AFTER pivot value
实例
127.0.0.1:6379> lpush mylist "world"
(integer) 1
127.0.0.1:6379> lpush mylist "hello"
(integer) 2
127.0.0.1:6379> lindec mulist 0
(error) ERR unknown command 'lindec'
127.0.0.1:6379> lindex mylist 0
"hello"
127.0.0.1:6379> lindex mylist 1
"world"
127.0.0.1:6379> lindex mylist 2
(nil)
127.0.0.1:6379> linsert mylist before "world" "11111"
(integer) 3
127.0.0.1:6379> lrange mylist 0 -1
1) "hello"
2) "11111"
3) "world"
Llen
说明
- Redis Llen 命令用于返回列表的长度。 如果列表 key 不存在,则 key 被解释为一个空列表,返回 0 。 如果 key 不是列表类型,返回一个错误。
语法
redis 127.0.0.1:6379> LLEN KEY_NAME
实例
127.0.0.1:6379> rpush list1 "foo"
(integer) 1
127.0.0.1:6379> rpush list1 "bar"
(integer) 2
127.0.0.1:6379> llen list1
(integer) 2
Lpop
说明
-Redis Lpop 命令用于移除并返回列表的第一个元素。
语法
redis 127.0.0.1:6379> Lpop KEY_NAME
实例
127.0.0.1:6379> rpush list1 "foo"
(integer) 1
127.0.0.1:6379> push list1 "bar"
(error) ERR unknown command 'push'
127.0.0.1:6379> rpush list1 "bar"
(integer) 2
127.0.0.1:6379> lpop list1
"foo"
Lpush
说明
-Redis Lpush 命令将一个或多个值插入到列表头部。 如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作。 当 key 存在但不是列表类型时,返回一个错误。
语法
redis 127.0.0.1:6379> LPUSH KEY_NAME VALUE1.. VALUEN
实例
127.0.0.1:6379> lpush list1 "foo"
(integer) 1
127.0.0.1:6379> lpush list1 "bar"
(integer) 2
127.0.0.1:6379> lrange list1 0 -1
1) "bar"
2) "foo"
Lpushx Lrange
说明
-Redis Lpushx 将一个值插入到已存在的列表头部,列表不存在时操作无效。
-Redis Lrange 返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定。 其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
语法
redis 127.0.0.1:6379> LPUSHX KEY_NAME VALUE1.. VALUEN
redis 127.0.0.1:6379> LRANGE KEY_NAME START END
实例
127.0.0.1:6379> lpush list1 "foo"
(integer) 1
127.0.0.1:6379> lpushx list1 "bar"
(integer) 2
127.0.0.1:6379> lpushx list2 "bar"
(integer) 0
127.0.0.1:6379> lrange list1 0 -1
1) "bar"
2) "foo"
127.0.0.1:6379> rpush mylist 'one'
(integer) 1
127.0.0.1:6379> rpush mylist 'two'
(integer) 2
127.0.0.1:6379> rpush mylist 'three'
(integer) 3
127.0.0.1:6379> lrange mylist 0 0
1) "one"
127.0.0.1:6379> lrange mylist -3 2
1) "one"
2) "two"
3) "three"
127.0.0.1:6379> lrange mylist -100 100
1) "one"
2) "two"
3) "three"
127.0.0.1:6379> lrange mylist 5 10
(empty list or set)
Lrem
说明
-Redis Lrem 根据参数 COUNT 的值,移除列表中与参数 VALUE 相等的元素。
COUNT 的值可以是以下几种:
count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。
count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。
count = 0 : 移除表中所有与 VALUE 相等的值。
语法
redis 127.0.0.1:6379> LREM KEY_NAME COUNT VALUE
实例
127.0.0.1:6379> rpush mylist "hello"
(integer) 1
127.0.0.1:6379> rpush mylist "hello"
(integer) 2
127.0.0.1:6379> rpush mylist "foo"
(integer) 3
127.0.0.1:6379> rpush mylist "hello"
(integer) 4
127.0.0.1:6379> lrem mylist -2 "hello"
(integer) 2
127.0.0.1:6379> lrange mylist 0 -1
1) "hello"
2) "foo"
Lset
说明
-Redis Lset 通过索引来设置元素的值。
当索引参数超出范围,或对一个空列表进行 LSET 时,返回一个错误。
语法
redis 127.0.0.1:6379> LSET KEY_NAME INDEX VALUE
实例
127.0.0.1:6379> rpush mylist 'hello'
(integer) 1
127.0.0.1:6379> rpush mylist 'hello'
(integer) 2
127.0.0.1:6379> rpush mylist 'foo'
(integer) 3
127.0.0.1:6379> rpush mylist "hello"
(integer) 4
127.0.0.1:6379> lset mylist 0 "bar"
OK
127.0.0.1:6379> lrange mylist 0 -1
1) "bar"
2) "hello"
3) "foo"
4) "hello"
Ltrim
说明
-Redis Ltrim 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
下标 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
语法
redis 127.0.0.1:6379> LTRIM KEY_NAME START STOP
实例
127.0.0.1:6379> rpush mylist 'hello'
(integer) 1
127.0.0.1:6379> rpush mylist 'hello'
(integer) 2
127.0.0.1:6379> rpush mylist 'foo'
(integer) 3
127.0.0.1:6379> rpush mylist "hello"
(integer) 4
127.0.0.1:6379> lset mylist 0 "bar"
OK
127.0.0.1:6379> lrange mylist 0 -1
1) "bar"
2) "hello"
3) "foo"
4) "hello"
127.0.0.1:6379> ltrim mylist 1 -1
OK
127.0.0.1:6379> lrange mylist 0 -1
1) "hello"
2) "foo"
3) "hello"
Rpop
说明
-Redis Rpop 命令用于移除列表的最后一个元素,返回值为移除的元素。
语法
redis 127.0.0.1:6379> RPOP KEY_NAME
实例
127.0.0.1:6379> rpush mylist 'hello'
(integer) 1
127.0.0.1:6379> rpush mylist 'hello'
(integer) 2
127.0.0.1:6379> rpush mylist 'foo'
(integer) 3
127.0.0.1:6379> rpush mylist "hello"
(integer) 4
127.0.0.1:6379> lset mylist 0 "bar"
OK
127.0.0.1:6379> lrange mylist 0 -1
1) "bar"
2) "hello"
3) "foo"
4) "hello"
127.0.0.1:6379> ltrim mylist 1 -1
OK
127.0.0.1:6379> lrange mylist 0 -1
1) "hello"
2) "foo"
3) "hello"
Rpop
说明
-Redis Rpop 命令用于移除列表的最后一个元素,返回值为移除的元素。
语法
redis 127.0.0.1:6379> RPOP KEY_NAME
实例
127.0.0.1:6379> rpush mylist 'one'
(integer) 1
127.0.0.1:6379> rpush mylist 'two'
(integer) 2
127.0.0.1:6379> rpush mylist 'three'
(integer) 3
127.0.0.1:6379> rpop mylist
"three"
127.0.0.1:6379> lrange mylist 0 -1
1) "one"
2) "two"
Rpoplpush
说明
-Redis Rpoplpush 命令用于移除列表的最后一个元素,并将该元素添加到另一个列表并返回。
语法
redis 127.0.0.1:6379> RPOPLPUSH SOURCE_KEY_NAME DESTINATION_KEY_NAME
实例
127.0.0.1:6379> rpush mylist 'hello'
(integer) 1
127.0.0.1:6379> rpush mylist 'foo'
(integer) 2
127.0.0.1:6379> rpush mylist 'bar'
(integer) 3
127.0.0.1:6379> rpoplpush mylist myotherlist
"bar"
127.0.0.1:6379> lrange mylist 0 -1
1) "hello"
2) "foo"
127.0.0.1:6379> lrange myotherlist 0 -1
1) "bar"
Rpush
说明
-Redis Rpush 命令用于将一个或多个值插入到列表的尾部(最右边)。
如果列表不存在,一个空列表会被创建并执行 RPUSH 操作。 当列表存在但不是列表类型时,返回一个错误。。
语法
redis 127.0.0.1:6379> RPUSH KEY_NAME VALUE1..VALUEN
实例
127.0.0.1:6379>
127.0.0.1:6379> rpush mylist 'hello'
(integer) 1
127.0.0.1:6379> rpush mylist 'foo'
(integer) 2
127.0.0.1:6379> rpush mylist 'bar'
(integer) 3
127.0.0.1:6379> lrange mylist 0 -1
1) "hello"
2) "foo"
3) "bar"
Rpushx
说明
-Redis Rpushx 命令用于将一个值插入到已存在的列表尾部(最右边)。如果列表不存在,操作无效
语法
redis 127.0.0.1:6379> RPUSHX KEY_NAME VALUE1..VALUEN
实例
127.0.0.1:6379> rpush mylist "hello"
(integer) 1
127.0.0.1:6379> rpush mylist "foo"
(integer) 2
127.0.0.1:6379> rpush mylist "bar"
(integer) 3
127.0.0.1:6379> lrange mylist 0 -1
1) "hello"
2) "foo"
3) "bar"