社会化搜索与互联网广告精准推荐

专注互联网广告大数据BI,海量数据离线计算,实时流计算,实时搜索,推荐算法,微博:http://weibo.com/larryspace...

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


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"





阅读更多
个人分类: redis/mongodb/mysql
上一篇Redis数据类型及操作
下一篇运动轨迹图表算法-已知两圆通过极坐标转换求两圆切线的公式-用于求两物体运动轨迹
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭