- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一台同时运行 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.sock
和 unixsocketperm 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/
我是一名优秀的程序员,十分优秀!