學習足跡

2013年12月13日 星期五

Node.js的MySQL連線管理

在PHP的環境中,對伺服器發出Request時,PHP才去對MySQL建立連線並撈取或異動資料,而當PHP處理完成的時候會釋放原本的MySQL連線,或是連線斷線時自動重連。

但在使用Node.js去做連線時如果要在請求結束時,並不會自己釋放與MySQL的連線,或者連線斷線時也不會自己重新連線,所以要自己去控制所有的資料庫連線狀況。


我使用的Node.js的MySQL套件是node-mysql

npm install mysql@2.0.0-rc1
npm install felixge/node-mysql

2013年12月11日 星期三

在Ubuntu12.04安裝Node.js

使用apt-get安裝

在僅使用原始的apt-get安裝,可以安裝舊版的(0.6.x)  Node.js
sudo apt-get install nodejs
若要使用apt-get安裝最新版的node.js,則需要更新套件庫在進行安裝,若原本已經使用apt-get安裝了舊版的node.js,也可以透過此步驟對node.js進行更新
sudo apt-get update
sudo apt-get install -y python-software-properties python g++ make
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs  

使用nvm(Node Version Manager)安裝

複製套件庫到家目錄中的.nvm資料夾

git clone git://github.com/creationix/nvm.git ~/.nvm

將nvm指令寫到.bashrc裡

echo ". ~/.nvm/nvm.sh" >> ~/.bashrc

重新載入.bashrc檔案(或者重新連線登入亦可)

source ~/.bashrc

安裝Node.js 0.10.22版

nvm install 0.10.22 

指定nvm使用的 Node.js版本

nvm use 0.10.22

預設使用 0.10.22 版本,否則每次重新連線登入,還需要重新 nvm use 一次

nvm alias default 0.10.22

列出所有安裝的版本

nvm ls

列出總共有哪些版本可以安裝

nvm ls-remote 


相關網站

2013年12月8日 星期日

node.js與php共用memcached資料

我們希望存放在Memcache的資料能夠在php與node.js共存,我們可以在node.js使用php-memcached套件,他們用法與memcached套件相同。

Sample code

php設定快取資料


在node.js讀取php設定的快取資料



備註

在php中可以將整個陣列的資料存放Memcached,不需要經過任何的轉換就可讀取到原陣列的資料,但是若是將要與node.js共用的陣列資料存到Memcached中,node.js會讀取不到php設定的陣列資料(node.js會讀到NaN)

反之若node.js將物件陣列資料存放到Memcached,則php直接讀取node.js設定的物件快取資料,也是讀取不到(php會讀到false)

所以php要與Node.js共用的陣列資料,則必須將物件或陣列轉換成JSON字串資料,再去解析存取

在Ubuntu12.04安裝Memcached給php使用

Memcached是個很棒的記憶體快取系統,我們通常會將需要經常存取,但又很少異動的資料存放於Memcached中,在讀取資料時直接從記憶體存取茲前處理過的資料,降低資料庫查詢的負載。

安裝

安裝Memcached

sudo apt-get install memcached

安裝php memcached套件

sudo apt-get install php5-memcache

重新啟動apache載入memcached套件

sudo /etc/init.d/apache2 restart

測試 



參考文章