Redis 消息模式

消息模式介绍

消息模式是为了帮助解决在业务中,进行资源有效利用方面的协调

Redis 的消息模式类型:发布订阅,消息队列

Redis 发布订阅

  • 发布者(pulisher)
  • 频道(channel)
  • 订阅者(subscriber)

创建一个频道

127.0.0.1:6379> SUBSCRIBE test
1) "subscribe"
2) "test"
3) (integer) 1

发布者发送消息

127.0.0.1:6379> PUBLISH test "hhhhh"
(integer) 1
127.0.0.1:6379> PUBLISH test 'hi'
(integer) 2

订阅者接受消息

Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "test"
3) (integer) 1
1) "message"
2) "test"
3) "hhhhh"
1) "message"
2) "test"
3) "hi"

实现类似QQ聊天功能

Redis 消息队列

在Redis中列表类型天生就是一个消息队列。

使用 Python + Redis 实现生产者消费者模型

生产者

import redis
import time

r = redis.Redis(host='192.168.100.10', password='000000')

for i in range(100):
    r.lpush('P_C', f'{i + 1:0>3}')
    time.sleep(4)

消费者

import redis
import time

r = redis.Redis(host='192.168.100.10', password='000000')

for i in range(100):
    rest = r.brpop('P_C')
    print(f'吃了第{rest[1].decode("utf-8")}个包子')
    time.sleep(3)
posted @ 2020-05-28 15:37  _Otis  阅读(234)  评论(0编辑  收藏  举报