suchen

Heim  >  Fragen und Antworten  >  Hauptteil

php - 服务器怎么实现即时保存数据

1.应用场景:client与server创建socket通信,client 通过socket向Server 发送数据。
2.连接数量:会有很多个(至少几十万级)client与server 通过socket建立连接,上传数据。
3.数据存储:现在使用的数据存储是redis+mysql
4.我的问题:该如何实现将server收到的数据及时的保存到MySql数据库中? 现在的思路: 用reids建一个队列,然后再保存到mysql,不知道是否可行? 看到有人说通过mongdb,那我该如何整合mongb到现有的redis+mysql中呢?

巴扎黑巴扎黑2895 Tage vor280

Antworte allen(4)Ich werde antworten

  • 巴扎黑

    巴扎黑2017-04-10 17:09:52

    几十万的连接,挺大的,但是是否有1s有几十万的写入。如果有那就用异步写入。但是不要用redis中的list,因为你的后端进程挂掉的话,数据就没了,建议用rabbitMQ做消息队列

    Antwort
    0
  • 迷茫

    迷茫2017-04-10 17:09:52

    redis list有坑的,我们现在的模式和你说的模式差不多,如果消费redis list的进程程序挂了,那么就悲催了,一般都会丢失数据的.

    Antwort
    0
  • PHPz

    PHPz2017-04-10 17:09:52

    你说的是memtor

    Antwort
    0
  • 大家讲道理

    大家讲道理2017-04-10 17:09:52

    这种情况使用redis list也行,可以在入redis之前记录个log,这样毕竟会安心点。
    其他方式就可以考虑专业的消息队列了,如xxMQ,或者有能力的话可以考虑Kfaka。

    Antwort
    0
  • StornierenAntwort