У меня есть сервер под управлением Node.js и Redis. Я использую пакет node-redis для подключения моего Node-приложения к Redis. Приложение Node и Redis работают на одном сервере (на одном сервере). В документации node-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 | сервер | в
PipeConnectWrap.afterConnect [as oncomplete] (net.js: 1158: 14)
Я также попытался внести следующие изменения в redis.conf :
#bind 127.0.0.1
(комментируя строку)
unixsocket /tmp/redis.sock
(это значение, которое я вижу, используется другими; также внесены соответствующие изменения в приложение Node)
unixsocketperm 777
(временное ослабление разрешений для исключения проблем с разрешениями)
Ни одно из этих изменений не устранило ошибку. Обратите внимание, что приложение Node и Redis прекрасно работают вместе (без ошибок), если я не пытаюсь использовать сокет Unix. Кто-нибудь видит, что я делаю не так?