无法连接到127.0.0.1:6379的Redis:使用自制软件拒绝连接

无法连接到127.0.0.1:6379的Redis:使用自制软件拒绝连接,redis,redis-server,Redis,Redis Server,使用自制软件安装Redis,但当我尝试ping Redis时,会显示以下错误: Could not connect to Redis at 127.0.0.1:6379: Connection refused 注意: 我试图关闭防火墙并编辑conf文件,但仍然无法ping。 我正在使用macOS Sierra和自制版本1.1.11在安装redis后,从终端键入: redis-server Redis服务器将被启动我在试图找出为什么通过brew services启动Redis后无法连接到Red

使用自制软件安装Redis,但当我尝试ping Redis时,会显示以下错误:

Could not connect to Redis at 127.0.0.1:6379: Connection refused
注意: 我试图关闭防火墙并编辑conf文件,但仍然无法ping。
我正在使用macOS Sierra和自制版本1.1.11

在安装
redis
后,从
终端键入:

redis-server

Redis服务器将被启动

我在试图找出为什么通过
brew services启动Redis后无法连接到Redis时发现了这个问题

tl;博士 根据您的计算机或安装的刷新程度,您可能会丢失redis默认设置的配置文件或目录

  • 您需要一个位于
    /usr/local/etc/redis.conf
    的配置文件。没有此文件,
    redis服务器将无法启动。您可以复制默认配置文件,然后使用

    cp /usr/local/etc/redis.conf.default /usr/local/etc/redis.conf
    
  • 您需要
    /usr/local/var/db/redis/
    才能存在。你可以很容易地做到这一点

    mkdir -p /usr/local/var/db/redis
    

  • 最后,只需使用
    brew服务重新启动redis
    ,即可重新启动redis

    你怎么知道的!? 我浪费了很多时间试图弄清楚redis是否没有通过自制使用默认值,以及它在哪个端口上。服务具有误导性,因为即使
    redis服务器
    尚未实际启动,
    brew服务列表
    仍会将redis显示为“已启动”。最好的方法是使用
    brew服务--verbose start redis
    ,它将显示日志文件位于
    /usr/local/var/log/redis.log
    。我往里面看,发现了冒烟的枪

    谢天谢地,日志使上述解决方案变得显而易见

    我不能运行redis服务器吗?
    你当然可以。如果您运行redis server&
    ,它只会占用一个终端或偶尔中断您的终端。它还将把
    dump.rdb
    放在运行它的任何目录中(
    pwd
    )。我对在git中删除或忽略该文件感到恼火,因此我决定让brew处理服务。

    我也遇到了同样的问题,因为我在配置文件中使用了不正确的语法。我想补充一点:

    maxmemory策略所有键lru

    添加到我的配置文件,但只添加了:

    allkeys lru


    这显然阻止了Redis解析配置文件,这反过来又阻止了我通过cli进行连接。修复此语法后,我可以连接到Redis。

    在我的情况下,是密码包含了一些字符,如
    ,更改密码后,服务器就可以正常启动。

    如果安装后需要始终运行
    Redis
    ,只需键入终端:

    redis服务器&

    在Ubuntu上使用upstart运行redis

    我一直在试图理解如何在Ubuntu上从头开始设置系统。我刚刚在盒子上安装了
    redis
    ,下面是我是如何安装的以及需要注意的一些事情

    要安装:

    sudo apt-get install redis-server
    
    这将创建一个
    redis
    用户并为其安装
    init.d
    脚本。由于
    upstart
    现在取代了使用init.d,我想我应该将它转换为使用
    upstart
    运行

    要禁用
    redis
    的默认
    init.d
    脚本:

    sudo update-rc.d redis-server disable
    
    然后使用以下脚本创建
    /etc/init/redis server.conf

    description "redis server"
    
    start on runlevel [23]
    stop on shutdown
    
    exec sudo -u redis /usr/bin/redis-server /etc/redis/redis.conf
    
    respawn
    
    这是一个脚本,用于
    upstart
    了解要运行什么命令来启动流程。最后一行还告诉upstart如果它死了,继续尝试重生

    我必须在
    /etc/redis/redis.conf
    中更改的一件事是
    daemonize yes
    daemonize no
    。如果不更改它会发生什么情况,那么
    redis server
    将分叉并将其自身后台处理,父进程将消失。当这种情况发生时,
    upstart
    认为进程已死亡/停止,您将无法从
    upstart
    中控制进程

    现在,您可以使用以下命令控制您的
    redis服务器

    sudo start redis-server
    sudo restart redis-server
    sudo stop redis-server
    

    希望这是有帮助的

    这是连接到redis的更好方式

    首先,像这样检查redis服务器的ip地址

    ps-ef | grep redis

    结果是“redis118410../usr/bin/redisserver172.x.x.x:6379”

    然后您可以像这样使用-h(主机名)选项连接到redis

    redis cli-h 172.x.x.x


    如果
    自制MacOS
    出现此问题,则问题在于
    /usr/local/var/log
    目录中缺少某种权限


    为了解决这个问题,我删除了
    /usr/local/var/log
    并重新安装redis
    brew重新安装redis

    首先,您需要使用下面的命令来启动/启动所有redis节点,对所有conf文件逐一执行。 @注意:如果您正在设置群集,那么您应该有6个节点,3个是主节点,3个是从节点。redis-cli将使用--cluster命令自动从6个节点中选择主节点和从节点,如下面的命令所示

    [xxxxx@localhost redis-stable]$ redis-server xxxx.conf 
    
    然后跑

    [xxxxx@localhost redis-stable]$ redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 --cluster-replicas 1
    
    以上的输出应如下所示:

        >>> Performing hash slots allocation on 6 nodes...
    
    自动设置所有内容的第二种方法: 您可以使用utils/createcluster脚本为自己设置一切 启动所有节点,创建群集 你有追随者吗

    谢谢你为我做的这项工作:

    sudo service redis-server start
    
    就像,在我的例子中,
    brew服务列表
    声称redis正在运行,但它没有运行。我在日志文件中找到了以下信息,位于
    /usr/local/var/log/redis.log

    4469:C 28 Feb 09:03:56.197#ooooooooo Redis正在启动ooooooooooooo
    4469:C 28 Feb 09:03:56.197#Redis version=4.0.9,bits=64,commit=00000000,modified=0,pid=4469,刚刚开始
    4469:C 28 Feb 09:03:56.197#配置已加载
    4469:M 28 Feb 09:03:56.198*将打开的最大文件数增加到10032(最初设置为256)。
    4469:M
    
        >>> Performing hash slots allocation on 6 nodes...
    
    sudo service redis-server start
    
    bind 127.0.0.1 ::1 192.168.161.1
    
    sudo service redis-server restart
    
    bind 127.0.0.1 ::1
    bind 192.168.1.7
    
    bind 127.0.0.1 ::1 192.168.1.7