轉:用unix socket加速php-fpm、mysql、redis的串連

來源:互聯網
上載者:User

標籤:

圖蟲的伺服器長期是單機運行。估計除了mysql之外,php-fpm和redis還可以在單機上共存很長時間。(多說伺服器早就達成了單機每日2000萬+動態請求,所以我對單機搞定圖蟲的大流量非常樂觀)

   如果是單機服務,其實就不需要用IP哪怕是127.0.0.1這樣的IP去串連mysql/redis/php了,因為即使是127.0.0.1也是要走TCP/IP層的。

   unix提供的unix socket來實現單機的連接埠訪問,很多文章提到用unix socket可以提升連線速度。

   我簡單測試了一下,200次redis請求的耗時38ms,如果改成unix socket方式,立刻降到27ms。這簡直是立竿見影啊,10ms的差距足以讓我們有動力把IP方式改成unix socket方式。

   Mysql(PDO)啟用unix socket的方法

   1.在PDO的DSN裡面:原來寫host:xxx,改成unix_socket:/var/run/mysqld/mysqld.sock (當然你可以在my.cnf裡面設定成別的)

   2.給mysql的使用者名稱@localhost,設定存取權限。由於unix_socket並不是主機,所以用unix socket方式串連mysql,mysql會強制認為使用者是來自於localhost,所以一定要給[email protected]設定許可權,而不是[email protected]’%’

   redis(phpredis)啟用unix socket的方法

   1.redis 預設沒有開啟unix socket,需要在/etc/redis/redis.conf中修改。注意unixsocketperm 777

unixsocket /var/run/redis/redis.sockunixsocketperm 777

   2.用phpredis串連:

$redis->connect(‘/var/run/redis/redis.sock‘)

   nginx + php-fpm啟用unix socket的方法

   1.php-fpm 的pool設定檔中:

listen = /var/run/php5-fpm.sock;

   2.nginx sites的設定檔中:

fastcgi_pass   unix:/var/run/php5-fpm.sock;

   由於redis串連次數很多,因此redis使用unix socket的效果最明顯,mysql其次,php基本上沒有用不用sock都差不多

轉:用unix socket加速php-fpm、mysql、redis的串連

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.