草庐IT

Sub-optimal

全部标签

node.js - 了解 redis-store pub-sub 中的 "dispatch" channel

我正在为socket.io使用node.js,redisstore。在执行PUB-SUB时,我可以看到channel=dispatch因此需要了解此dispathchannel,它如何连接到我的Node进程以及PUBSUB在内部如何工作。已经经历了redis.iopub-sub文档但无法获取调度channel。任何其他文件都可以提供帮助。谢谢。 最佳答案 我认为您也在为socket.io使用Redis存储?Here是socket.io中创建dispatchchannel的相关代码。 关于

redis - 为什么 Redis Pub/Sub 不允许在回调中访问 Redis?

关于如何使用RedisPub/Sub(来自ServiceStack,但我不认为它只是ServicStack),我真的很困惑。我没有看到具有此限制的Pub/Sub的用处,因为我们通常使用Redis而不仅仅是作为消息队列。因此,如果您不能从订阅回调中执行任何Redis命令,您最终只能创建自己的消息处理程序而不是使用Pub/Sub,不是吗?简而言之,我的问题是如何正确使用Pub/Sub,以便在有消息时可以访问Redis?如果没有办法,那么Pub/Sub就不能用于很多应用。-我没有发布代码,因为我已经知道创建Pub/Sub连接的代码。我正在寻找软件模式/架构建议并确认这是一个问题。

javascript - redis sub/pub 进出 io.connect 回调

如果我想将数据发送给所有连接的人,是否应该将redis订阅事件放在io.connect回调之外?或者像这样将它放在io.connect中更好:io.on('connection',function(socket){sub.on('message',function(channel,msg){Project.findAll({where:{id:msg}},{raw:true}).success(function(d){console.log(d);io.sockets.emit("activities",d);})});});会有什么不同吗?Node.jsvarexpress=requ

Java + Redis Pub/Sub - 帮助选择一个好的 Worker 实现

我正在为移动设备设计一个实时后端聊天应用程序,为此我正在通过Java(处理传入的HTTP请求)和Redis(发布/订阅)构建所有内容。现在我正在寻找一个Worker并且已经看过像Resque、Python-RQ甚至Celery(也提供Redis集成)这样的工具,但也许事情会发展并且仍然难以管理。我想让事情尽可能简单。有没有人尝试使用Jedis(redisjava客户端)来监听来自Redischannel的消息并为收到的每条消息启动一个新线程?表演不好吗?如果a每秒有数百个请求怎么办?这似乎是一个糟糕的解决方案(简单的线程作为worker)流程是(以安卓为例):Android客户端发送消

python - 使用 redis sub\pub 的 Tornado 套接字

我需要有关将网络套接字与Redis发布/订阅channel结合使用的性能方面的建议。我使用tornado作为网络服务器。我有大约100个客户端在监听某个事件的状态。每个客户端都有单独的事件,只需要监听自己的事件。套接字连接是短暂的,大约1-20秒。我看到两个选项:在redis中为每个套接字事件对创建单独的发布/订阅channel。在这种情况下,我会有很多channel。创建一个发布/订阅channel,订阅所有客户端并在Controller中过滤消息以将它们转发到合适的客户端。在这种情况下,我有很多客户收听一个channel。以下哪个选项对性能更好? 最佳答

ruby-on-rails - 用于发布和订阅事件的 Ruby 中 Redis SUB/PUB 的替代方案

我遇到的问题是,在使用heroku的免费附加组件时,我被限制为20个Redis连接。每个订阅事件都在使用一个连接,导致我的应用程序在使用有限的情况下达到最大。该应用程序是使用网络套接字的消息服务。我知道因为使用免费托管服务而进行重构似乎是一个糟糕的决定,但是,这是Redis唯一的用途。 最佳答案 尝试使用faye或em-websocket进行发布/订阅,然后如果需要,您可以使用redis或postgres进行持久化。http://faye.jcoglan.com/https://github.com/igrigorik/em-web

c# - 如何在 Servicestack.Redis 中使用 "New Managed Pub/Sub Server"取消订阅 channel

在NewManagedPub/SubServer他们的文档展示了如何在pubsubserver的初始化中订阅channel。但是,您如何在程序稍后需要时取消订阅特定channel?我的代码:usingServiceStack.Redis;usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Threading;namespaceva.communication{classProgram{staticvoidMain(string[]args){varclientsManager=newPoole

node.js - Redis Pub/Sub 聊天室

我是Redis发布/订阅的新手,所以请多多包涵。我正在尝试创建一个IRC,用户可以在其中创建自己的聊天室,有点像Gitter。以下是我到目前为止所做的。我通过用户名将用户订阅到不同的channel只是为了测试。事情是当我发布到channelx时,订阅到channely的客户仍然得到相同的消息..我正在使用redis-cli和PUBLISH命令发布。functionhandleIO(socket){functiondisconnect(){console.log("Clientdisconnected");socket.broadcast.emit("userd/c",socket.us

design-patterns - 用于多个生产者和多个消费者的 Redis pub sub

假设有N个生产者和订阅这N个生产者的M个用户。这里N生产者生产N种不同类型的消息,例如producer1producesmessageType1,producer2producesmessageType2,producer3producesmessageType3,...producerNproducesmessageTypeN.M个用户可以订阅这些消息。一个用户可以订阅多种类型的消息。例如user1consumes(messageType1,messageType2,messageType10)user2consumes(messageType14,messageType5)..us

java - redis pub sub 和/或列表来实现数据收集器

我正在开发一个需要按计划从第三方系统收集数据的模块,比如每5分钟一次。启动数据收集的触发器来自Multi-TenancyUI。因此,10个租户可以告诉该模块同时开始收集数据。我从使用一个简单的redis队列开始,所有来自UI的启动请求都被发送到队列中,该模块充当工作人员,获取作业并运行它们。问题是我们需要在1分钟内完成一个数据收集周期,如果有100个作业,如果我们连续进行,我们将花费一分钟多的时间。数据收集需要按计划进行。所以UI说每5分钟运行一次数据收集,直到我说停止!因此,我们添加了另一个可以开始减轻负载的工作器。我的问题是:如何在不在其中一个工作人员中保持状态(预定线程执行程序)