Redis 连接到127.0.0.1:6379失败-连接经济拒绝

使用 Expressjs < br/> 处理 node.js 时,我尝试将帐户存储到 session。因此,我尝试用 < a href = “ http://Expressjs.com/guide.html”> Expressjs 中的代码测试使用 session

var RedisStore = require('connect-redis')(express);
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.session({ secret: "keyboard cat", store: new RedisStore }));

但是我得到了错误 Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED。 < br/> 请帮助我解决这个问题

299103 次浏览

安装 redis 后,从终端输入:

redis-server

然后你就可以重新开始了

尝试将节点升级到最新版本。

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

版本0.4可能不能正常运作。

对于 Windows 平台,必须检查 redis-server是否在给定的 ip: port 上运行。您可以在安装目录 /conf/redis.conf中找到 redis 配置。默认情况下客户端接受 127.0.0.1:6379

我用的是 Ubuntu 12.04 我通过安装 redis-server 解决了这个问题

Ubuntu 12.04的 redis-server 安装

一些配置将新建 root 权限 还列出了其他操作系统的手册

谢谢

我也有同样的问题,首先我尝试通过 sudo service restart重新启动 reis-server,但问题仍然存在。然后我删除 redis-serversudo apt-get purge redis-server和安装它再次由 sudo apt-get install redis-server,然后重新工作。它也值得有一个看看在这里位于 /var/log/redis/redis-server.log红地日志

我用下面的方法解决这个问题:

sudo apt-get install redis-server

然后运行命令确认一切正常:

sudo service redis-server status

输出将是: redis-server is running-这意味着问题得到了解决。

我在 Windows 上,必须从 给你安装 Redis,然后运行 redis-server.exe

这个所以问题的顶部开始。

我在 MBP 上,并安装 雷迪斯细节我的问题得到解决 下载、提取和编译 Redis:

$ wget http://download.redis.io/releases/redis-3.0.2.tar.gz


$ tar xzf redis-3.0.2.tar.gz


$ cd redis-3.0.2


$ make

现在编译的二进制文件在 src 目录中可用。

运行 Redis:

$ src/redis-server

你和 Redis 的连接失败了。尝试重新启动您的 redis 服务器,然后通过运行以下3个命令再次启动您的客户端:

sudo service redis-server restart
redis-server
redis-cli

我想您可能是按源代码安装了 redis。如果您需要定位到 redis-source-code-path/utils 并运行 sudo install_server.sh命令。 之后,确保 redis-server 已经作为系统服务运行 sudo service redis-server status

PS: 基于 Debian/Ubuntu

首先在系统上安装 redis-

brew install redis

然后启动 Redis 服务器-

redis-server

在 ubuntu 的情况下,错误是由于没有设置 reis-server。 再次安装 redis-server,然后检查状态。

如果没有错误,那么将显示如下消息:-

● redis-server. service-Advanced key-value store 已加载: 已加载(/lib/systemd/system/redis-server. service; 已启用; 供应商预置: 已启用) Active: Active (running) since Wed 2018-01-1720:07:27 IST; 16s ago 医生: http://redis.io/documentation, 男: redis-server (1) 主 PID: 4327(redis-server) CGroup:/system.slice/redis-server. service 受害人: 4327/usr/bin/redis-server 127.0.0.1:6379

对于 Windows 用户,您可以使用 Chocolatey 来安装 Redis

choco install redis-64

然后运行服务器

C:\ProgramData\chocolatey\lib\redis-64\redis-server.exe

你必须先安装 Redis 服务器;

您可以通过以下步骤在 Mac 上安装 redis 服务器-

  $ curl -O http://download.redis.io/redis-stable.tar.gz
$ tar xzvf redis-stable.tar.gz
$ cd redis-stable
$ make
$ make test
$ sudo make install
$ redis-server

祝你好运。

简单的解决办法:

只需按下面的建议一次,并重新启动您的服务器

redis-server

使用 Windows10? 点击这里: < a href = “ https://learn. microsoft.com/en-us/windows/wsl/wsl2-install”rel = “ nofollow norefrer”> https://learn.microsoft.com/en-us/windows/wsl/wsl2-install

那就跑吧。

    $ wget https://github.com/antirez/redis/archive/5.0.5.tar.gz <- change this to whatever Redis version you want (https://github.com/antirez/redis/releases)
$ tar xzf redis-5.0.5.tar.gz
$ cd redis-5.0.5
$ make

对我来说,我在 Ubuntu 18.x 上遇到了这个问题,但我的问题是我的 redis-server 运行在127.0.0.1上,但我发现我需要在我的 IP 地址 xxx.xx.xx.xx 上运行它

我进入我的 Ubuntu 机器并做了以下操作。

cd /etc/redis/

sudo vim redis.conf

然后我剪辑了这部分。

################################## NETWORK #####################################


# By default, if no "bind" configuration directive is specified, Redis listens
# for connections from all the network interfaces available on the server.
# It is possible to listen to just one or multiple selected interfaces using
# the "bind" configuration directive, followed by one or more IP addresses.
#
# Examples:
#
# bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1 ::1
#
# ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the
# internet, binding to all the interfaces is dangerous and will expose the
# instance to everybody on the internet. So by default we uncomment the
# following bind directive, that will force Redis to listen only into
# the IPv4 loopback interface address (this means Redis will be able to
# accept connections only from clients running into the same computer it
# is running).le to listen to just one or multiple selected interfaces using
#
# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
# JUST COMMENT THE FOLLOWING LINE.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# bind 127.0.0.1 ::1 10.0.0.1
bind 127.0.0.1 ::1 # <<-------- change this to what your iP address is something like (bind 192.168.2.2)


保存它,然后重新启动 redis-server。

或者简单地运行 redis-server

对于那些正在使用 docker 与 docker 组成和打字脚本的人,我的解决方案是

import { RedisClient } from 'redis';


const pubClient = new RedisClient({ url: 'redis://redis:6379' });

import { createClient } from 'redis';


const pubClient = createClient({ url: 'redis://redis:6379' });

码头作曲

version: '3.9'


services:
main:
build:
context: .
target: development
ports:
- ${PORT}:${PORT}
volumes:
- ./src:/usr/src/app/src
- /app/node_modules
env_file:
- .env
command: npm run start:dev
depends_on:
- mongo
- redis
mongo:
image: mongo:5.0.2-focal
volumes:
- mongo-data:/data/db
mongo-express:
image: mongo-express:0.54.0
ports:
- 8081:8081
depends_on:
- mongo
redis:
image: redis:6.2.5-alpine


volumes:
mongo-data:

对于 Windows,我通过... ... 解决了这个问题。

用..。

let redisClient = createClient({
legacyMode: true ,
url: 'redis://redis:6379',
});

它的 Redis 版本 > 4.0
你可以参考下面的图片。

1