Redis中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)
到此这篇关于Redis中List实现双链表的文章就介绍到这了,更多相关Redis List双链表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!