您的位置:首页 > 数据库 > Redis

redis发布订阅和自定义的命令组合

2012-03-27 20:12 501 查看
启动订阅和发布客户端

在订阅客户端

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();
}
}


2:Redis还支持自定义的命令组合,通过MULTI和EXEC,将几个命令组合起来执行

redis 127.0.0.1:6379> SET counter 0
OK
redis 127.0.0.1:6379> MULTI
OK
redis 127.0.0.1:6379> INCR counter
QUEUED
redis 127.0.0.1:6379> INCR counter
QUEUED
redis 127.0.0.1:6379> INCR counter
QUEUED
redis 127.0.0.1:6379> EXEC
1) (integer) 1
2) (integer) 2
3) (integer) 3
redis 127.0.0.1:6379> GET counter
"3"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息