尋常でないもふもふ

a software engineer blog

ioredisで謎のエラー

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();

エラーがでるコード

hostport を指定するとエラー。

import * as Redis from 'ioredis';

const redis = new Redis(3306, '127.0.0.1');

原因

Redis の 6379 番ポートではなく、MySQL の 3306 番ポートにアクセスしてた。
このエラーだけならすぐ気づいたかもだけど、別のエラーとの複合技だったので解決に時間がかかってしまった。疲れてるようだ…。