redis 隊列同步到mysql 方案

用redis的隊列,數據lpush進入,而後另外開個進程,while(true){brpop/rpop隊列}php

下面用php作示例:mysql

a.php 文件裏的代碼redis

$redis->Redis();
$redis->connect($host, $port, $db);
$redis->lpush('list', $data);

b.php 文件裏的代碼,爲減小鏈接次數,注意不要一條一條插入,能夠達到幾百條批量一次入庫sql

$redis->Redis();
$redis->connect($host, $port, $db);
while(true) {
    $data = $redis->brpop('list', 0);
    if ($data) {
        // 鏈接mysql操做
        // 插入數據
    }
}

用php命令執行b.php文件segmentfault

php b.php

 

==========================================code

更好的方法:daemon的讀redis rabbitmq

https://segmentfault.com/q/1010000003731015隊列

 

另外:進程

1.redis自己支持mqit

2.rabbitmq

相關文章
相關標籤/搜索