You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 16.04下Redis与Redis-server服务无法同时激活的问题咨询

嘿,我来帮你把Redis服务的这个问题捋清楚~

为什么两个Redis服务不能同时处于ACTIVE状态?

核心原因很简单:这俩本质都是Redis服务器进程,默认情况下会抢占同一个端口(6379),而且会试图使用相同的数据目录、配置文件等系统资源。当其中一个服务已经启动并占用了这些资源后,另一个服务启动时就会因为端口冲突或资源占用失败,自然没法同时处于ACTIVE状态。

两者的差异是什么?

这两个服务的核心区别在于安装方式和系统集成度:

  • 安装来源与路径不同:
    • redis-server.service是你通过apt-get install redis-server安装的Ubuntu官方软件包,它完全遵循Debian/Ubuntu的系统规范,比如:
      • 可执行文件在/usr/bin/redis-server
      • 配置文件在/etc/redis/redis.conf
      • 数据目录在/var/lib/redis
      • 日志文件在/var/log/redis/
    • redis.service是你跟着DigitalOcean教程手动编译安装的版本,这种方式会让你自主选择安装路径,比如可能把可执行文件放在/usr/local/bin/redis-server,配置文件在/usr/local/etc/redis.conf,甚至需要你手动创建/etc/systemd/system/redis.service这个服务文件。
  • 维护与集成度不同:
    • 官方源的redis-server会自动处理系统级的集成:比如开机自启、日志轮转、依赖管理,后续系统升级时也能跟着自动更新Redis版本,维护起来省心很多。
    • 手动安装的Redis则需要你自己维护所有配置、服务文件,升级也得手动重新编译替换,适合需要特定版本(比如官方源没有的新版本)或者自定义编译参数的场景。
应该安装哪一个?

根据你的使用场景来选:

  • 如果只是常规使用Redis,不需要特殊版本或自定义功能,优先选apt-get install redis-server安装的官方包,它和Ubuntu系统的兼容性最好,排查问题也更方便。
  • 如果你需要Redis的某个特定版本,或者要开启官方包没带的编译选项,再考虑手动编译安装的方式。
如果非要让两个服务同时运行怎么办?

如果确实有特殊需求要同时跑两个Redis实例,你需要修改其中一个服务的配置,让它们使用不同的资源:

  1. 找到要修改的服务对应的配置文件(比如手动安装的redis.service对应的/usr/local/etc/redis.conf)。
  2. 修改以下关键配置项:
    • 将port改成非6379的端口,比如6380
    • 修改dir(数据存储目录)为新路径,比如/var/lib/redis-6380,记得提前创建这个目录并给Redis进程设置读写权限
    • 修改logfile为不同的日志路径,比如/var/log/redis/redis-6380.log
  3. 重新加载systemd配置:systemctl daemon-reload
  4. 启动修改后的服务:systemctl start redis.service,这时两个服务应该就能同时处于ACTIVE状态了

内容的提问来源于stack exchange,提问作者user5084534

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:24:45