摘要:
实现一个消息队列 本来打算利用Redis发布订阅模式来实现一个简单的消息队列,但我在工作中根本没用Redis来做消息队列。有几点原因 1. 数据持久化。 2. Redis只会发送消息给在线的消费者,处于离线状态的消费者将不会收到消息就算恢复过来。 3. 没有ACK机制,发送者不知道消费者到底消费了吗 阅读全文
摘要:
实现原理 有兴趣看Redis pub/sub源码的可以移步 "这里" ,有中文注释的哦,感谢作者的奉献。 订阅(Subscribe) 先直接上源码 主要做了两件事情 1. 判断新的channel是否存在于客户端的pubsub_channels中,如果不存在执行下面步骤 2. 将channel添加到客 阅读全文
摘要:
发布订阅模式 发布订阅模式可以说是耳熟能详了,它是属于设计模式中的行为模式,最大的好处就是起到解耦的作用,发布者不用关心在消息产生之后需要做什么,发布者只需要在通道里说“我发布了”,不用管有什么业务逻辑需要处理也不用管有多少的逻辑要处理,很简单明了。 我们平时用来解耦业务的消息队列就是实现了发布订阅 阅读全文
摘要:
Redis客户端使用RESP(Redis序列化协议)与Redis服务器进行通信,RESP在位于TCP之上,而网络模型上客户端和服务器是保持的双工的连接。如图1 而一个简单的请求/响应的串行通信模型如下图: 串行化通信 串行化通信比较简单,上面那张图就很表面的反应出来这种通信方式,同一个Connct 阅读全文