gpt4 book ai didi

node.js - 如何在 node-redis 中使用 Unix 套接字?

转载 作者:可可西里 更新时间:2023-11-01 10:52:40 26 4
gpt4 key购买 nike

我有一台同时运行 Node.js 和 Redis 的服务器。我正在使用 node-redis 包将我的 Node 应用程序连接到 Redis。 Node 应用程序和 Redis 都在单个服务器(同一台服务器)上运行。 node-redis documentation在 GitHub 上指出,在使用单个服务器配置时,可以通过使用 Unix 套接字来增加 Redis 连接吞吐量。设置 Redis/node-redis 以使用 Unix 套接字的正确方法是什么?

我已经尝试在 redis.conf 文件中取消注释 unixsocket/var/run/redis/redis.sockunixsocketperm 700 行,然后通过指定以下内容在 Node 应用程序中创建 Redis 客户端:

let client = require('redis').createClient('/var/run/redis/redis.sock');

重启服务器后,我在日志中看到以下错误:

Error: Redis connection to /var/run/redis/redis.sock failed - connect ENOENT /var/run/redis/redis.sock 0|server | at PipeConnectWrap.afterConnect [as oncomplete] (net.js:1158:14)

我还尝试对 redis.conf 进行以下更改:

#bind 127.0.0.1(注释掉该行)

unixsocket/tmp/redis.sock(这是我看到别人用的值;在Node app中也做了相应的改动)

unixsocketperm 777(暂时放宽权限排除权限问题)

这些更改都没有解决错误。请注意,如果我尝试使用 Unix 套接字,Node 应用程序和 Redis 可以很好地协同工作(没有错误)。有人看到我做错了什么吗?

最佳答案

您可以将路径属性设置为选项。

const redis = require('redis');
const redisClient = redis.createClient({
path: '/var/run/redis/redis.sock'
});

关于node.js - 如何在 node-redis 中使用 Unix 套接字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52028547/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com