У меня есть сервер, на котором работают Node.js и Redis. Я использую пакет node-redis для подключения своего приложения Node к Redis. Приложение Node и Redis работают на одном сервере (тот же сервер). В документации по узлу-redis на GitHub указано, что пропускную способность соединения Redis можно увеличить с помощью сокета Unix. при использовании конфигурации с одним сервером. Как правильно настроить Redis/node-redis для использования сокета Unix?
Я попытался раскомментировать строки unixsocket /var/run/redis/redis.sock
и unixsocketperm 700
в файле redis.conf, а затем создать клиент Redis в приложении Node, указав:
let client = require('redis').createClient('/var/run/redis/redis.sock');
После перезагрузки сервера я вижу в логах следующую ошибку:
Ошибка: Ошибка подключения Redis к /var/run/redis/redis.sock — подключите ENOENT /var/run/redis/redis.sock 0|server | в PipeConnectWrap.afterConnect [как oncomplete] (net.js:1158:14)
Я также попробовал внести следующие изменения в redis.conf:
#bind 127.0.0.1
(комментируя строку)
unixsocket /tmp/redis.sock
(это значение, которое я вижу, используется другими; также внесены соответствующие изменения в приложение Node)
unixsocketperm 777
(временное ослабление разрешений, чтобы исключить проблемы с разрешениями)
Ни одно из этих изменений не устранило ошибку. Обратите внимание, что приложение Node и Redis отлично работают вместе (без ошибок), если я не пытаюсь использовать сокет Unix. Кто-нибудь видит, что я делаю неправильно?