黑马程序员Redis入门到实战教程,深度透析redis底层原理+redis分布式锁+企业解决方案+黑马点评实战项目
总时长 42:48:00 共175P
此文章包含第71p-第p77的内容 包含实战篇25-30的内容
文章目录
jvm消息队列

实现代码
创建对象将其放入消息队列中

创建阻塞队列
创建一个1024*1024大小的阻塞队列

将对象存到阻塞队列当中

创建线程池和线程任务

@PostConstruct 在当前类初始化完毕后执行

把阻塞队列的生产者消费者比作厨子,桌子,客人,厨子做饭了一份菜(厨子只要有任务就会做),放到了桌子上,桌子的容量就是1024 * 1024
创建一个死循环来判断队列中是否存在消息,这个不必担心对cpu有很大的负担,这个方法是判断是否存在消息 存在才会卡住,不存在直接放行

创建一个代理对象(proxy)并对其进行初始化




测试效果




redis消息队列
这里入股宕机或出现异常会导致数据丢失 所以我们使用redis的消息队列




List结构


查看一下list解构


阻塞或者等待 直到有一个元素可用为止

创建一个20秒的等待时间

存一个队列 存了两个


阻塞或等待



pubsub结构

来官网查看详细信息


支持的通配符(pattern)



subscribe和psubscribe都是阻塞式的(订阅以后就一直等待读消息)


发送消息后



streams数据类型


教程


发送消息命令


读取消息命令
如果没设置阻塞 有消息的时候就返回值 没消息就返回空nil


使用$代表从最新的消息进行读取,这里没有未读取的新消息,

阻塞状态



有bug


消费者组







使用java代码实现redis消息队列


redis消息队列代码
需求

代码


被折叠的 条评论
为什么被折叠?



