【问题标题】:hiredis getting err 1 REDIS_ERR_IO No such file or directoryhiredis 得到错误 1 ​​REDIS_ERR_IO 没有这样的文件或目录
【发布时间】:2015-02-20 04:28:19
【问题描述】:

redisAsyncConnectUnix() 返回一个 err=1 的 redisAsyncContext(not NULL),即带有 errstr "No such file or directory" 的 REDIS_ERR_IO,他们在寻找什么文件/目录?

Redis 已启动并运行,可以从 redis-cli 进行设置

【问题讨论】:

    标签: c redis hiredis


    【解决方案1】:

    redisAsyncConnectUnix 用于使用 Unix Domain Socket 连接到服务器,该 Socket 由伪文件实现。该文件的路径必须作为参数提供:

    redisAsyncContext *redisAsyncConnectUnix(const char *path);
    

    例如,您可以使用:

    path = /tmp/redis.socket
    

    但是,您需要检查服务器(它必须与客户端在同一台机器上运行)正在侦听相同的路径。查看Redis配置文件中以下参数的定义:

    unixsocket /tmp/redis.socket
    unixsocketperm 755
    

    确保路径有效,访问权限正确。您可以通过运行检查服务器端的配置是否正常:

    redis-cli -s /tmp/redis.socket
    

    【讨论】:

    • 感谢您的帮助,我试图连接到上面的主服务器,无论如何都已修复。现在的问题是在连接到从站时,说“错误的文件描述符”,从站 unix 套接字为“/tmp/redis.socket”
    • 你的slave是否在同一台机器上运行?在这种情况下,您必须确保 master 和 slave 使用不同的配置文件、不同的目录来存储它们的数据,当然还有不同的端口号和 unix 套接字名称的不同路径。
    猜你喜欢
    • 2021-03-15
    • 1970-01-01
    • 1970-01-01
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    • 2013-08-08
    • 2013-11-04
    • 2012-02-18
    相关资源
    最近更新 更多