Learn R Programming

rredis (version 1.7.0)

redisSubscribe: redisSubscribe

Description

Subscribe to one or more Redis message channels.

Usage

redisSubscribe(channels, pattern=FALSE)

Arguments

channels
A character vector or list of channel names to subscribe to.
pattern
If TRUE, allow wildcard pattern matching in channel names, otherwise names indicate full channel names.

Value

Each subscribed channel corresponds to three list elements, the header 'subscribe' followed by the channel name and a count indicating the total number of subscriptions.

Details

(From the Redis.io documentation): redisSubscribe, redisUnsubscribe and redisPublish implement the Publish/Subscribe messaging paradigm where (citing Wikipedia) senders (publishers) are not programmed to send their messages to specific receivers (subscribers). Rather, published messages are characterized into channels, without knowledge of what (if any) subscribers there may be. Subscribers express interest in one or more channels, and only receive messages that are of interest, without knowledge of what (if any) publishers there are.

Use the Redis function redisUnsubscribe to unsubscribe from one or more channels. Service incoming messanges on the channels with either redisGetResponse or redisMonitorChannels.

Use of any other Redis after redisSubscribe prior to calling redisUnsubscribe will result in an error.

References

http://redis.io/commands

See Also

redisSubscribe redisPublish redisUnsubscribe redisGetResponse

redisMonitorChannels

Examples

Run this code
## Not run: 
# redisConnect()
# # Define a callback function to process messages from channel 1:
# channel1 <- function(x) {
#   cat("Message received from channel 1: ",x,"\n")
# }
# # Define a callback function to process messages from channel 2:
# channel2 <- function(x) {
#   cat("Message received from channel 2: ",x,"\n")
# }
# redisSubscribe(c('channel1','channel2'))
# # Monitor channels for at least 1 minute:
# t1 <- proc.time()[[3]]
# while(proc.time()[[3]] - t1 < 60)
# {
#   redisMonitorChannels()
#   Sys.sleep(0.05)
# }
# redisUnsubscribe(c('channel1','channel2'))
# ## End(Not run)

Run the code above in your browser using DataLab