我在业余时间慢慢挖掘和学习 redis,我对为订阅 channel 的网站创建“监听器”并在收到消息时更新网页的可用选项很感兴趣。
现在,从我以前的 actionscript 时代到现在的 javascript 工作,我非常熟悉给定这两种语言的监听器的概念。然而,我的服务器端编程功能实际上只扩展到 PHP、一点 rails、一点 python 和伪 node.js(我是一个相当有经验的 javascript 人,并且了解 node.js 的作用).
由于我的主要技能集中在 php 方面,我想知道是否有可能使用 php 进行持久连接/套接字,从而在 PHP 中创建一个监听器?
因为我猜这实际上是不可能的(或者等同于用锤子修复挡风玻璃裂缝),有哪些服务器端选项?是否可以只创建一个使用持久连接到 redis 服务器(当前在本地主机上)的 javascript 监听器。 Socket.io 是我应该研究的东西吗?
对于 redis 初学者的任何见解将不胜感激。
编辑 我在这里找到了一篇很棒的帖子 How to use redis PUBLISH/SUBSCRIBE with nodejs to notify clients when data values change?这部分回答了我的问题。
除了 node.js 之外,还有其他方法可以做同样的事情吗?我可以完全放弃 php 并为这个项目尝试一些新的东西。无论如何,这是个人的。
最佳答案
redis 中的发布/订阅机制要求订阅的客户端是持久的,即“始终在线”以便通过订阅接收更新。
可以将 PHP 脚本/应用程序守护进程化,但这并不理想,也不是 PHP 的核心竞争力之一。
我建议寻找其他解决方案。如果您发现您提到的 node.js + redis + pub/sub 帖子很有说服力,也许您应该更强烈地考虑它。
您还可以考虑重新考虑如何构建您的 redis 存储数据。也许一组可以从中“弹出”项目的集合将适合相同的目的,而无需使用 redis 发布/订阅。
关于php - 创建一个 redis 监听器 - 在 php 中可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8449911/