Comments (2)
Reading https://redis.io/commands/pubsub you can send PUBLISH
/SUBSCRIBE
to any node in the cluster. You can use redisClusterAsyncCommandToNode()
to send a command directly to a specific node.
Should hiredis-cluster send the command a specific node by hashing the channel (as it does for regular Redis keys)?
from hiredis-cluster.
Should hiredis-cluster send the command a specific node by hashing the channel (as it does for regular Redis keys)?
No, pubsub channels are not sharded like keys. They are forwarded between the Redis nodes in a cluster, so you can subscribe to any node and publish to any node. (Pubsub doesn't scale that well in a large cluster since all messages are forwarded to all nodes, but that's different topic.)
I'm not sure what is the best way to implement this in hiredis-cluster but it can be good to know that when using pubsub, you typically need a dedicated connection to receive published messages. The documentation of SUBSCRIBE says:
Once the client enters the subscribed state it is not supposed to issue any other commands, except for additional SUBSCRIBE, PSUBSCRIBE, UNSUBSCRIBE, PUNSUBSCRIBE, PING, RESET and QUIT commands.
[Edit] For commands like PUBSUB CHANNELS
and PUBSUB NUMSUB
, you need to send the command to all nodes and then combine the results.
from hiredis-cluster.
Related Issues (20)
- When is the support for redis 7 coming? Any recommendation for which redis client to use for redis version 7? HOT 11
- Support custom commands defined in Redis modules HOT 6
- Testing fault tolerance HOT 1
- There is no way to perform AUTH in asynchronous mode. HOT 2
- Does hiredis-cluster support SSUBSCRIBE? HOT 2
- Compilation error LIBEVENT_INCLUDES-NOTFOUND HOT 3
- MOVED ERROR in pipeline-API when increasing shards in existing redis cluster HOT 10
- Target "hiredis::hiredis" because target "hiredis" is not a library HOT 1
- During cmake, Checking for module 'glib-2.0' No package 'glib-2.0' found HOT 2
- nodeNext strange behaviour after master failover. HOT 9
- With redisClusterAsyncCommandArgvToNode api, client not discovering new nodes on redis master node disconnect HOT 4
- Update the slotmap after send errors/timeouts in the sync API HOT 1
- hircluster.c:218:9: 错误: HOT 4
- Failed to find keys of command XREADGROUP HOT 2
- Recovery in case of discovered slots from redis cluster is partial HOT 2
- is redisClusterAppendCommand, redisClusterGetReply thread Safe? HOT 1
- SIGSEGV in clusterNodesReplyCallback while calling redisClusterAsyncFree HOT 3
- The connection always been close after every redisClusterCommandArgv HOT 1
- Unable to execute commands without keys (FLUSHALL, PING, INFO) HOT 2
- redisClusterAsyncDisconnect behaviour when a redisAsyncContext object has seen some error HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hiredis-cluster.