在Web应用发展的初期,那时关系型数据库受到了较为广泛的关注和应用,原因是因为那时候Web站点基本上访问和并发不高、交互也较少。而在后来,随着访问量的提升,使用关系型数据库的Web站点多多少少都开始在性能上出现了一些瓶颈,而瓶颈的源头一般是在磁盘的I/O上。而随着互联网技术的进一步发展,各种类型的应用层出不穷,这导致在当今云计算、大数据盛行的时代,对性能有了更多的需求,主要体现在以下几个方面:
> 1. 低延迟的读写速度:应用快速地反应能极大地提升用户的满意度
> 2. 支撑海量的数据和流量:对于搜索这样大型应用而言,需要利用PB级别的数据和能应对百万级的流量
> 3. 大规模集群的管理:系统管理员希望分布式应用能更简单的部署和管理
我们来实现一下通过python控制redis进而实现订阅的基本原理
需求
首先假设,我现在有一个用户a,它需要订阅b的频道从而接受到有关b所发送的消息
实操
系统:windows
目录
第一步肯定是要先打开我们的redis-server
打开powershell输入redis-server回车,进入:
我们现在先来模拟接收订阅信息的部分:
接收部分
先导入所需要的库,以及构建好redis对象
import redis
r = redis.Redis(host='127.0.0.1')
然后我们就要介绍一个方法:pusub()
pub = r.pubsub()
使用Redis对象r
创建一个发布/订阅对象pub
。这个对象允许你订阅或发布消息到指定的频道。
还有一个方法:subscribe()实际上就是指定一个订阅对象:
pub.subscribe('mychannel')
这里就相当于指定好了“mychannel”
接下来初始化与redis服务器的连接:
pub.parse_response()
再建立一个死循环,就可以一直监听 “mychannel” 的消息了
while True:
print('waiting.......')
res = pub.parse_response()
print('res:', res[2])
OK!!
现在我们就做好了监听器,也就是接收对象的人,但是“mychannel”呢??
发送部分
我们新建一个python文件
重新导入redsi
import redis
r = redis.Redis(host='127.0.0.1')
然后再使用:publish() 方法
r.publish('mychannel', 'Hello World!')
使用Redis对象r
调用publish
方法来向名为'mychannel'
的频道发送消息。消息内容是字符串'hello world'
。发布者将消息发送到频道后,所有订阅了该频道的订阅者都会收到这条消息。
接着回到上一个文件,我们先运行接收部分,,然后接着运行发送部分的python文件。
可以看到一个有趣的是:
waiting........
res b'hello world'
waiting........
接收部分已经接收到了发送的‘hello world’啦!!
那么我们就已经完成了基础的模拟订阅功能
本章节的源码也已经帮助到该文章了!!
--------
希望这篇文章能帮助到你
也可以在评论区留下你遇到的困难哦!