Redis常用命令-List
2017-03-13 23:42
302 查看
Redis是一个开源的速度非常快的非关系数据库,它可以存储键(key)与5种不同类型的值(value)之间的映射(mapping),可以将存储在内存的键值对数据持久化到硬盘,可以使用复制特性来扩展读性能,还可以使用客户端分片来扩展写性能。、
请注意:存储在Redis中的数据并不会由于计算机的关机而从内存中消失,必须手动删除数据才会消失。
Redis的集合和列表都可以存储多个字符串,它们之间的不同在于,列表可以存储多个相同的字符串,而集合则通过使用散列来保证自己存储的每个字符串都是各不相同的(这些散列表只有键,但没有与键相关联的值)。
实例演示:
1、Lpush和Rpush
Lpush list-key1 val1 val2 //list-key1值为:val2 val1,最左边的元素的索引为0
Lpush list-key1 val3 val4 //list-key1值为:val4 val3 val2 val1
Lpush list-key1 val5 //list-key1值为:val5 val4 val3 val2 val1
Rpush list-key1 val6 //list-key1值为:val5 val4 val3 val2 val1 val6
Rpush list-key1 val7 val8 //list-key1值为:val5 val4 val3 val2 val1 val6 val7 val8
2、Lpop和Rpop
Lpop list-key1 //list-key1值为:val4 val3 val2 val1 val6 val7 val8
Rpop list-key1 //list-key1值为:val4 val3 val2 val1 val6 val7
3、Lrange
Lrange list-key1 0 -1 //结果为:val4 val3 val2 val1 val6 val7
Lrange list-key1 0 5 //结果为:val4 val3 val2 val1 val6 val7
Lrange list-key1 4 5 //结果为:val6 val7
4、Lindex
Lindex list-key1 0 //结果为:val4
Lindex list-key1 3 //结果为:val1
5、Ltrim
Ltrim list-key1 3 5 //list-key1值为:val1 val6 val7
6、Blpop
在测试本命令之前先对需要用到的数据进行初始化。
Rpush list-key1 val5 val2 //list-key1值为:val1 val6 val7 val5 val2
Rpush list-key2 vala valb valc vald vale //list-key2值为:vala valb valc vald vale
Blpop list-key1 list-key2 100 //list-key1值为:val6 val7 val5 val2
//list-key2值为:vala valb valc vald vale
7、Brpop
Brpop list-key2 list-key1 100 //list-key1值为:val6 val7 val5 val2
//list-key2值为:vala valb valc vald
8、RpopLpush
RpopLpush list-key1 list-key2 //list-key1值为:val6 val7 val5
//list-key2值为:val2 vala valb valc vald
9、BRpopLpush
BRpopLpush list-key2 list-key1 100 //list-key1值为:vald val6 val7 val5
//list-key2值为:val2 vala valb valc
请注意:存储在Redis中的数据并不会由于计算机的关机而从内存中消失,必须手动删除数据才会消失。
Redis的集合和列表都可以存储多个字符串,它们之间的不同在于,列表可以存储多个相同的字符串,而集合则通过使用散列来保证自己存储的每个字符串都是各不相同的(这些散列表只有键,但没有与键相关联的值)。
一、List键值结构
二、重要API
参数 | 解释 |
---|---|
Rpush | Lpush key-name value[value…]——将一个或多个值推入列表的右端 |
Lpush | Lpush key-name value[value…]——将一个或多个值推入列表的左端 |
Linsert | Linsert key-name BEFORE|AFTER pivot value——在list指定的值pivot前|后插入value |
Rpop | Rpop key-name——移除并返回列表最右端的元素 |
Lpop | Lpop key-name index newValue——移除并返回列表最左端的元素 |
Ltrim | Ltrim key-name start end——对列表进行修剪,只保留从start偏移量到end偏移量范围内的元素,包括start和end在内 |
Lrem | Lrem key-name count value——根据count值从列表中删除与value相等的项,(1)count>0,从左到右删除最多count个与value相等的项 (2)count<0,从右到左删除最多count个与value相等的项 (3)count=0,删除所有与value相等的项 |
Lset | Lset key-name index newValue——设置列表指定索引的值为newValue |
Lindex | Lindex key-name offset——返回列表中偏移量为offset的元素 |
Lrange | Lrange key-name start end——返回列表从start偏移量到end偏移量范围内的所有元素,包括start和end在内 |
Llen | Llen key-name——获取列表的长度 |
Blpop | Blpop key-name [key-name…] timeout——从第一个非空列表中弹出位于最左端的元素,或者在timeout秒之内阻塞并等待可弹出的元素出现 |
Brpop | Brpop key-name [key-name…] timeout——从第一个非空列表中弹出位于最右端的元素,或者在timeout秒之内阻塞并等待可弹出的元素出现 |
RpopLpush | RpopLpush source-key dest-key——从source-key列表中弹出位于最右端的元素,然后将这个元素推入dest-key列表的最左端,并向用户返回这个元素 |
BRpopLpush | BRpopLpush source-key dest-key timeout——从source-key列表中弹出位于最右端的元素,然后将这个元素推入dest-key列表的最左端,并向用户返回这个元素;如果source-key为空,那么在timeout秒之内阻塞并等待可弹出元素出现 |
三、注意事项
1、要小心使用Ltrim命令实例演示:
1、Lpush和Rpush
Lpush list-key1 val1 val2 //list-key1值为:val2 val1,最左边的元素的索引为0
Lpush list-key1 val3 val4 //list-key1值为:val4 val3 val2 val1
Lpush list-key1 val5 //list-key1值为:val5 val4 val3 val2 val1
Rpush list-key1 val6 //list-key1值为:val5 val4 val3 val2 val1 val6
Rpush list-key1 val7 val8 //list-key1值为:val5 val4 val3 val2 val1 val6 val7 val8
2、Lpop和Rpop
Lpop list-key1 //list-key1值为:val4 val3 val2 val1 val6 val7 val8
Rpop list-key1 //list-key1值为:val4 val3 val2 val1 val6 val7
3、Lrange
Lrange list-key1 0 -1 //结果为:val4 val3 val2 val1 val6 val7
Lrange list-key1 0 5 //结果为:val4 val3 val2 val1 val6 val7
Lrange list-key1 4 5 //结果为:val6 val7
4、Lindex
Lindex list-key1 0 //结果为:val4
Lindex list-key1 3 //结果为:val1
5、Ltrim
Ltrim list-key1 3 5 //list-key1值为:val1 val6 val7
6、Blpop
在测试本命令之前先对需要用到的数据进行初始化。
Rpush list-key1 val5 val2 //list-key1值为:val1 val6 val7 val5 val2
Rpush list-key2 vala valb valc vald vale //list-key2值为:vala valb valc vald vale
Blpop list-key1 list-key2 100 //list-key1值为:val6 val7 val5 val2
//list-key2值为:vala valb valc vald vale
7、Brpop
Brpop list-key2 list-key1 100 //list-key1值为:val6 val7 val5 val2
//list-key2值为:vala valb valc vald
8、RpopLpush
RpopLpush list-key1 list-key2 //list-key1值为:val6 val7 val5
//list-key2值为:val2 vala valb valc vald
9、BRpopLpush
BRpopLpush list-key2 list-key1 100 //list-key1值为:vald val6 val7 val5
//list-key2值为:val2 vala valb valc
相关文章推荐
- Redis常用命令(4)——List
- redis-list常用命令
- Redis常用命令(4)——List
- Redis 常用命令 List篇
- Redis-list类型常用操作命令
- 初识redis之常用List命令
- Redis数据类型list类型常用命令
- CentOS 初体验二十三:redis常用命令:List
- Redis初窥:List操作常用命令
- redis中list类型详解及常用命令
- redis数据类型List的常用命令
- Redis常用的命令(五)------列表list
- Redis常用命令(2)List类型
- Redis常用的管理命令
- Redis配置和常用命令
- redis常用命令总结
- redis常用命令
- Redis常用命令
- redis常用命令
- Redis工作常用命令记录