phpredis实现消息队列

通过redis的消息对列提高聊天服务器的并发量 消息队列

1.保存数据到队列


$redis = new redis();

$redis->connect('127.0.0.1', 6379);

$chat_content = array(

"chat_content2"=>1231231,

"chat_content1"=>"sdfsda",

"chat_content3"=>"asdfasdfasd",

"chat_content4"=>"adfasdfas",

);

$redis->lpush("chat_content_list",json_encode($chat_content));//在列表的头部添加一条或多条内容

$redis->close();

?>

2.保存数据到mysql是单独的一个定时任务,需要手动启动

把数据保存到mysql数据库


$redis = new redis();

$redis->connect('127.0.0.1', 6379);

if($redis->lsize("chat_content_list")>0){//lsize获取列表中key值的长度(有多少个value)没有的话返回0

$chat_info = $redis->rpop("chat_content_list");//在列表尾部取出一条数据(出队,取出的数据value在列表中就删除了)

$chat_info = json_decode($chat_info,true);//不加true返回的是一个对象,加true返回数组

//普通聊天

$pdo = new PDO("mysql:host=127.0.0.1;chatset=utf8;dbname=webim;port=3306","root","");

//这里的方法需要从新实现

$pdo->add_record($chat_info);

}else{

sleep(1);

}

$redis->close();

?>

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容