zoukankan      html  css  js  c++  java
  • php+redis实现消息队列

    php+redis消息队列是php+mysql性能不足时的一个中间间处理方案。通过这个中间的处理,保证的数据的可用性和准确性。用于服务器瞬间请求大,数据库压力大的情况。如并发量大导致的超卖、并发量大导致的数据重复情况。

            流程:php接受请求和数据 -> php把数据写入redis队列中(入队) -> shell定时调用php读取队列数据写入mysql(出队)

            实现代码:

    入队:inqueue.php

    <?php
    $redis = new redis();
    $redis->connect('127.0.0.1',6379);
    $redis -> select('1');
    $redis->auth('');
     
    $data = [a,b,c,d,e,f,g,h]; //这里可以是get或post请求过来的数据
    $data = json_encode($data);
    $in = $redis->rpush('queue',$data);
    if($in){
        echo "入队成功";
    }
    

      

    出队:outqueue.php

    #!/usr/bin/php
    <?php
    $redis = new redis();
    $redis->connect('127.0.0.1',6379);
    $redis -> select('1');
    $redis->auth('');
     
    $value = $redis->lpop('queue');
    $value = json_decode($value,true);
    

      

     

    shell process.sh:定时调用outqueue.php脚本

    #进行每分钟调用一次
    * * * * * /usr/local/nginx/html/process.sh
    
    #!/bin/bash
    #file_name : process.sh
    #author : zuoping
    php /usr/local/nginx/html/outqueue.php
    

      

    *如果每分钟调用一次频率不够,可以执行多次调用脚本,如:

    #!/bin/bash
    #file_name : process.sh
    #author : zuoping
    php /usr/local/nginx/html/outqueue.php
    php /usr/local/nginx/html/outqueue.php
    php /usr/local/nginx/html/outqueue.php
    php /usr/local/nginx/html/outqueue.php
    php /usr/local/nginx/html/outqueue.php
    php /usr/local/nginx/html/outqueue.php
    php /usr/local/nginx/html/outqueue.php
    php /usr/local/nginx/html/outqueue.php
    php /usr/local/nginx/html/outqueue.php
    php /usr/local/nginx/html/outqueue.php
    php /usr/local/nginx/html/outqueue.php
    #这样就一分钟调用了多次了。
    

    查看队列中的当前数据:

    <?php
    $redis = new redis();
    $redis->connect('127.0.0.1',6379);
    $redis -> select('1');
    $redis->auth('');
     
    $list = $redis->lrange('queue',0,-1);
    var_dump($list);
    

      

  • 相关阅读:
    gdb调试动态链接so
    set non-stop on
    ntp对时
    360se打开慢,lsass 过高 , cpu温度上升
    CiscoIOUKeygen
    jitwatch查看JIT后的汇编码
    直接打开virtualbox报错
    老码农的Java干货资源
    java C 类自动转换规则
    java static learning
  • 原文地址:https://www.cnblogs.com/tdalcn/p/10482058.html
Copyright © 2011-2022 走看看