目录
概述:
特征:(与LinkedList类似)
List常见命令
1.Lpush key element.....:向列表左侧插入一个或多个元素
2.LPOP key :移除并返回列表左侧的第一个元素,没有则返回nil
3.RPUSH key element...:向列表右侧插入一个或多个元素
4.RPOP key :移除并返回列表左侧的第一个元素,没有则返回nil
5.LRANGE key star end:返回一段角标范围内的所有元素
6.BLPOP和BRPOP:与LPOP和RPOP类似,只不过在没有元素是等待指定时间,而不是直接返回nil
总结:
遗留下的问题:
如何用List结构模拟出一个栈?
如何利用List结构模拟出一个队列?
如何利用List结构模拟一个阻塞队列?
概述:
Redis中的list类型与java中的LinkedList集合类似,可以看作是一个双向的链表结构,既可以支持正向的检索,也可以支持反向的检索
特征:(与LinkedList类似)
1.有序
2.元素可以重复
3.插入与删除一样快
4.查询速度一般(遍历所有节点来查询)
常用来储存一有序的数据,例如:朋友圈点赞列表,评论列表,等..........
List常见命令
1.Lpush key element.....:向列表左侧插入一个或多个元素
2.LPOP key :移除并返回列表左侧的第一个元素,没有则返回nil
3.RPUSH key element...:向列表右侧插入一个或多个元素
4.RPOP key :移除并返回列表左侧的第一个元素
5.LRANGE key star end:返回一段角标范围内的所有元素
6.BLPOP和BRPOP:与LPOP和RPOP类似,只不过在没有元素是等待指定时间,而不是直接返回nil
1.Lpush key element.....:向列表左侧插入一个或多个元素
(1)在命令行里面写入数据
(2)在图形工具查看数据(我们可以看到,在图形化界面的里面是是倒叙的,这是因为我们使用了头插法)
2.LPOP key :移除并返回列表左侧的第一个元素,没有则返回nil
(1)在命令行里面写入数据
(2)在图形工具查看数据(我们可以看到,在图形化界面的里面是是倒叙的,这是因为我们使用了头插法)
3.RPUSH key element...:向列表右侧插入一个或多个元素
(1)在命令行里面写入数据
(2)在图形工具查看数据(我们可以看到,在图形化界面的里面是是倒叙的,这是因为我们使用了头插法)
4.RPOP key :移除并返回列表左侧的第一个元素,没有则返回nil
(1)在命令行里面写入数据
(2)在图形工具查看数据(我们可以看到,在图形化界面的里面是是倒叙的,这是因为我们使用了头插法)
5.LRANGE key star end:返回一段角标范围内的所有元素
(1)新添加数据
(2)在命令行里面写入数据
6.BLPOP和BRPOP:与LPOP和RPOP类似,只不过在没有元素是等待指定时间,而不是直接返回nil
(1)在命令行里面写入数据(代表了在100秒之内如果发现就执行操作,否则一直堵塞在这里)
(2)新开一个cmd写入数据
(3)效果
总结:
不难理解,走过一遍流程就像是喝水这么简单,但是喝水的姿势还不是这么流畅,需要重复练习
遗留下的问题:
如何用List结构模拟出一个栈?
--入口与出口在一起(Lpush与Lpop,Rpush与Rpop)
如何利用List结构模拟出一个队列?
--入口与出口不在一起(Lpush与Rpop,Rpush与Lpop)
如何利用List结构模拟一个阻塞队列?
--也是队列,即入口与出口不在一起(Lpush与BRpop,Rpush与BLpop)
--出队的时候采用(BRpop,BLpop)