php - 创建一个 redis 监听器 - 在 php 中可能吗?

标签 php javascript listener redis socket.io

我在业余时间慢慢挖掘和学习 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/

相关文章:

php - 我正在尝试使用类编写选择,但它不起作用

php - 下拉菜单加载并选择特定值

javascript - 等待异步方法完成时如何正确发布对帖子的响应?

Java-不使用 KeyListener 检查按键

php - list() 函数和 mysqli_fetch_array 一起工作吗?

php - 尝试使用 PHP 执行 Python 脚本

javascript - 名称中带有空格的关联数组不会出现

javascript - Draft.js 无法从外部表单插入上传的图片

java - 两个JButton可以有相同的鼠标点击事件函数吗?

c++ - 发布者订阅者模式的现代替代方案