Does Redis Pub/Sub work with master-slave replication?
In short: yes!
To see this,
start two Redis servers
in master-slave configuration,
then subscribe to channel foo
on the slave:
$ redis-server --port 6379 &
$ redis-server --port 6380 --slaveof 127.0.0.1 6379 &
$ redis-cli -p 6380 subscribe foo
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "foo"
Now publish something to foo
on the master:
$ redis-cli -p 6379 publish foo bar
You’ll find that this message does arrive at the client subscribed on the slave:
...
1) "message"
2) "foo"
3) "bar"
All publish
commands are replicated to the slave.
You can see this by
first sending the sync
command
to the Redis master
using redis-cli
,
which then becomes a Redis slave
and prints all replicated commands:
$ redis-cli -p 6379 sync
Entering slave output mode... (press Ctrl-C to quit)
SYNC with master, discarding 76 bytes of bulk transfer...
SYNC done. Logging commands from master.
"publish","foo","bar"
Tagged #programming, #redis. All content copyright James Fisher 2019. This post is not associated with my employer.