php redis stream消息队列操作大全代码
代码语言:phpcli
所属分类:其他
代码描述:php redis stream消息队列操作大全代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<?php //连接reids $redis = new Redis(); $redis->connect('127.0.0.1', 6379); //xadd:追加消息 //xdel:删除消息,删除标志位,不影响消息总长度 //xrange:消息列表,过滤已删除的消息 //xlen:消息长度 //del: 删除所有消息 $redis->rawCommand('del', 'bfw'); // 星号表示自动生成id,后面参数key,value $redis->rawCommand('xadd', 'bfw', '*', 'name', 'user1', 'age', '20'); $redis->rawCommand('xadd', 'bfw', '*', 'name', 'user2', 'age', '18'); $redis->rawCommand('xadd', 'bfw', '*', 'name', 'user3', 'age', '19'); $redis->rawCommand('xadd', 'bfw', '*', 'name', 'user4', 'age', '19'); //maxlen 定长长度,将老消息干掉,确保链表不会超过指定长度 $redis->rawCommand('xadd', 'bfw', 'maxlen', '3', '*', 'name', 'user5', 'age', '19'); $res = $redis->rawCommand('xlen', 'bfw'); echo "<pre>"; var_dump($res); echo '\n'; // -最小值 +最大值 $res = $redis->rawCommand('xrange', 'bfw', '-', '+'); print_r($res); echo '\n'; $id = $res[1][0]; // 指定最小消息列表 $res = $redis->rawCommand('xrange', 'bfw', $id, '+'); // var_dump($res); // echo '\n'; // 指定最大消息列表 $res = $redis->rawCommand('xrange', 'bfw', '-', $id); // var_dump($res); // echo '\n'; // 指定最大消息列表 $res = $redis->rawCommand('xrange', 'bfw', '-', $id); // var_dump($res); // echo '\n'; /************************独立消费************************/ //从stream中头部读取两条消息 $res = $redis->rawCommand('xread', 'count', '2', 'streams', 'bfw', '0-0'); // var_dump($res); // echo '\n'; //从尾部读取一条消息,这里不会返回任何消息 $res = $redis->rawCommand('xread', 'count', '1', 'streams', 'bfw', '$'); // var_dump($res); // echo '\n'; //block 0 表示永久阻塞,直到消息到来,block 1000表示阻塞1秒,如果1秒没新消息,返回null //从尾部阻塞等待消息到来,然后新开一个窗口塞消息,这时候阻塞解除返回新消息内容 // $res = $redis->rawCommand('xread','block','0','count','1','streams','bfw','$'); // var_dump($res); // echo '\n'; /************************消费组************************/ // 星号表示自动生成id,后面参数key,value $redis->rawCommand('xadd', 'mq', '*', 'msg', '1'); $redis->rawCommand('xadd', 'mq', '*', 'msg', '2'); $redis->rawCommand('xadd', 'mq', '*', 'msg', '3'); $redis->rawCommand('xadd', 'mq', '*', 'msg', '4'); $redis->rawCommand('xadd', 'mq', '*', 'msg', '5'); //创建消费组mqGroup 为消息队列 mq 从第一条开始消费 $redis->rawCommand('xgroup', 'create', 'mq', 'mqGroup', '0'); //从从尾部开始消费 //$redis->rawCommand('xgroup','create','mq'.........完整代码请登录后点击上方下载按钮下载查看
网友评论0