Redis基础命令(List类型)双链表

目录

概述:

特征:(与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)在命令行里面写入数据

Redis基础命令(List类型)双链表_第1张图片

(2)在图形工具查看数据(我们可以看到,在图形化界面的里面是是倒叙的,这是因为我们使用了头插法)

Redis基础命令(List类型)双链表_第2张图片

 2.LPOP key :移除并返回列表左侧的第一个元素,没有则返回nil

(1)在命令行里面写入数据

(2)在图形工具查看数据(我们可以看到,在图形化界面的里面是是倒叙的,这是因为我们使用了头插法)

Redis基础命令(List类型)双链表_第3张图片

 

3.RPUSH key element...:向列表右侧插入一个或多个元素

(1)在命令行里面写入数据

(2)在图形工具查看数据(我们可以看到,在图形化界面的里面是是倒叙的,这是因为我们使用了头插法)

Redis基础命令(List类型)双链表_第4张图片

4.RPOP key :移除并返回列表左侧的第一个元素,没有则返回nil

(1)在命令行里面写入数据

(2)在图形工具查看数据(我们可以看到,在图形化界面的里面是是倒叙的,这是因为我们使用了头插法)

Redis基础命令(List类型)双链表_第5张图片

 

5.LRANGE key star end:返回一段角标范围内的所有元素

(1)新添加数据

Redis基础命令(List类型)双链表_第6张图片

(2)在命令行里面写入数据

Redis基础命令(List类型)双链表_第7张图片

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,redis,java,数据库)