Redis发布订阅
Redis发布订阅
启动订阅和发布客户端
在订阅客户端
redis 127.0.0.1:6379> PSUBSCRIBE share
Reading messages... (press Ctrl-C to quit)1) "psubscribe"
2) "share"
3) (integer) 1
表示客户端订阅share通道
其中1表示该客户端中连的接订阅通道数为1
在发布客户端,为该通道发布一个消息
redis 127.0.0.1:6379> publish share "share"
(integer) 1
其中1表示有1个连接接收到这个消息
订阅客户端显示:
1) "pmessage"//消息类型
2) "share"//我订阅的通道名
3) "share"//我接收的通道名
4) "share"//消息内容
ps:另附java实现订阅代码:
- public static void main(String[] args) {
- String cmd = "subscribe share\r\n";
- SocketChannel client = null;
- try {
- SocketAddress address = new InetSocketAddress("localhost", 6379);
- client = SocketChannel.open(address);
- client.configureBlocking(false);// 设置为异步
- ByteBuffer buffer = ByteBuffer.allocate(100);
- buffer.put(cmd.getBytes());
- buffer.clear();
- client.write(buffer);
- System.out.println("发送数据: " + new String(buffer.array()));
- while (true) {
- buffer.flip();
- int i = client.read(buffer);
- if (i > 0) {
- byte[] b = buffer.array();
- System.out.println("接收数据: " + new String(b));
- break;
- }
- }
- } catch (Exception e) {
- try {
- client.close();
- } catch (IOException e1) {
- e1.printStackTrace();
- }
- e.printStackTrace();
- }
- }
评论暂时关闭