Resolvi isso passando o próprio módulo redis como uma opção para o construtor RedisStore.
io.set('store', new RedisStore({redis: redis, redisPub: redisClient, redisSub: redisSubscriber, redisClient: redisClient }));
Isso era necessário para que os objetos cliente passassem a
instanceof RedisClient
teste e não seja reinicializado sem uma senha. Aparentemente, quando RedisStore
requer novamente o módulo redis, clientes redis criados com o createClient
método são membros de alguma nova classe ou algo assim. Eu descobri isso olhando para um problema relacionado que alguém estava tendo no problema #808 do socket.io.