通过 pkg 或 ports 在 FreeBSD 上安装 Redis 不能 运行

Redis installed on FreeBSD via pkg or ports can not run

我已经通过 pkg 在 FreeBSD 上安装了 redis yesterday.And 还在我的 /etc/rc.conf.

中添加 redis_enable="YES"

当我运行service redis start时显示Starting redis,而运行service redis status时显示redis is not running.

运行redis-server后,运行s,但是使用redis-cli无法连接服务器。

当运行redis-cliredis-cli ping时,会卡死不报错。

redis日志文件也没有报错

我用google还是其他的都找不到解决办法。我应该如何使用redis?

与通过ports

安装的redis相同

以下是我公司的基本信息:

当命令 "hungs" 在 BSD 上做的第一件事是按 ^T(即 ctrl-t)。你能这样做并粘贴输出吗?

我建议更新、重新安装,方法是:

# pkg update

然后:

# pkg upgrade -y

重新安装redis:

# pkg remove -y redis

重新安装:

# pkg install -y redis

此时您应该在终端中看到:

===>  CONFIGURATION NOTE:

  To setup "redis" you need to edit the configuration file:
  /usr/local/etc/redis.conf

  To run redis from startup, add redis_enable="YES"
  in your /etc/rc.conf.

确保redis is enabled on startup use sysrc

# sysrc redis_enable="YES" 

这次不行尝试直接开始调用脚本:

# /usr/local/etc/rc.d/redis start

您可以使用 sockstat 检查是否已启动并监听:

# sockstat -4l
USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
redis    redis-serv 9553  4  tcp4   127.0.0.1:6379        *:*

在此之后,redis-cli 或 telnet 0 6379 应该可以工作了:

# telnet 0 6379
Trying 0.0.0.0...
Connected to 0.
Escape character is '^]'.

如果还是不行,也许 ktrace 可以帮助找到更多细节:

要跟踪 PID:

$ ktrace -p 9553

要停止跟踪:

# ktrace -C

使用kdump显示内核跟踪数据

# kdump -f my-ktrace.out | less