ioredis で謎のエラーがでてハマった。
[ioredis] Unhandled error event: ParserError: Protocol error, got "J" as reply type byte. Please report this. at handleError (/Users/jnst/go/src/github.com/Translimit/park-server/node_modules/redis-parser/lib/parser.js:190:15) at parseType (/Users/jnst/go/src/github.com/Translimit/park-server/node_modules/redis-parser/lib/parser.js:304:14)
エラーがでないコード
空のコンストラクタを使うとデフォルトで 127.0.0.1
に接続する。
import * as Redis from 'ioredis'; const redis = new Redis();
エラーがでるコード
host
と port
を指定するとエラー。
import * as Redis from 'ioredis'; const redis = new Redis(3306, '127.0.0.1');
原因
Redis の 6379 番ポートではなく、MySQL の 3306 番ポートにアクセスしてた。
このエラーだけならすぐ気づいたかもだけど、別のエラーとの複合技だったので解決に時間がかかってしまった。疲れてるようだ…。