1. php phpredis

2. php predis

3. php predis-async

4. node.js redis

 

publish → subscribe までの時間

phpredis クライアントから26Mのファイル送信

クライアントpublish 0.3sec

1. 0.2sec

2. 0.5sec

3. 40sec ? 遅すぎ?

4. 4sec

 

ちなみにpublishにかかる時間

1. 0.3sec

2. 0.3sec

3. 35sec ? 遅すぎ?

4. 0.3sec

 

※上記複数クライアントを接続していたため、クライアント数を減らすと多少早くなる

 

——–

pubsub

お互いにsubscribe

subscribeを受けたら、publish

10000msg , 28byteデータ送信

 

1. node.js redis – node.js redis間

2. node.js redis – php phpredis間

2. node.js redis – php predis間

2. node.js redis – php predis-async間

 

結果

1.

pub完了 9041msg/sec

sub完了 7886msg/sec

2.

pub完了 12853msg/sec

sub完了 11834msg/sec

3.

pub完了 8319msg/sec

sub完了 6230msg/sec

4.

pub完了 8818msg/sec

sub完了 7342msg/sec

 

——–

ws-pubsub

wsからsend

お互いにsubscribe

subscribeを受けたら、publish

10000msg , 28byteデータ送信

 

1. node.js ws-client -> node.js ws-server & redis -> php phpredis

node.js ws-client <- node.js ws-server & redis <- php phpredis

 

ws-client 受信完了 1207msg/sec

ws-server pub完了 1216msg/sec

ws-server sub完了 1215msg/sec

phpredis pub完了 1216msg/sec

※redis-cli monitorで見ると、pubsub双方向は並列処理

※サーバは1cpu

predis-async を使った性能評価

同一サーバでpredis-asyncベースのクライアント/サーバ間でpub/sub

 

1.publish片方向

2.publish双方向

3.publish+lpush

※ appendonly yes 設定

 

1000msg送信を10回、その最大/最少

 

message size :28byte

1. 7405 – 8411 msg/sec

2. 4713 – 4951 msg/sec

3. 2697 – 3395 msg/sec

 

message size 4051byte

1. 6305 – 8042 msg/sec

2. 4217 – 4824 msg/sec

3. 2880 – 3129 msg/sec