必须从官网下载源码、手动编译、创建标准目录结构、修改配置启用认证,并用launchd注册系统服务;具体包括:下载redis-7.4.6、make编译、sudo make install、建/etc/redis等目录、复制并编辑redis.conf启用daemonize、bind、protected-mode no及requirepass、配置plist文件、sudo launchctl加载启动,最后用redis-cli -a验证pong。

要在Mac上不依赖Homebrew、完全原生安装Redis服务器并设置密码,你必须从官网下载源码、手动编译、创建标准目录结构、修改配置启用认证,并用系统级服务管理启动。这一步绕过包管理器,确保路径可控、版本明确、配置透明。
下载并编译Redis源码
打开终端,执行以下命令下载最新稳定版(截至2026年9月,redis-7.4.6为当前推荐稳定版):
curl -O https://download.redis.io/releases/redis-7.4.6.tar.gz
解压后进入目录并编译:
tar -zxvf redis-7.4.6.tar.gz → cd redis-7.4.6 → make
编译成功后安装二进制文件到系统路径:
sudo make install
这一步会把 redis-server、redis-cli 等命令复制到 /usr/local/bin,后续所有操作都基于这个路径。如果跳过 sudo,命令将无法全局调用,后续每步都会报 command not found。
创建规范目录结构并复制配置文件
Redis默认不自动建目录,必须手动创建配置、数据、日志三类路径:
sudo mkdir -p /usr/local/etc/redis /usr/local/var/db/redis /usr/local/var/log
复制源码包中的默认配置文件到规范位置:
sudo cp redis.conf /usr/local/etc/redis/redis.conf
修改配置文件属主,避免后续启动时因权限不足被拒绝:
sudo chown $(whoami) /usr/local/etc/redis/redis.conf
【关键前提】这一步不能跳过,否则 redis-server 启动时会因无法写入 pidfile 或日志而静默失败,且无错误提示。
编辑redis.conf启用密码与后台运行
用文本编辑器打开配置文件:
vi /usr/local/etc/redis/redis.conf
找到并修改以下六项(逐行取消注释并赋值):
daemonize yes
pidfile /usr/local/var/run/redis.pid
port 6379
bind 127.0.0.1
protected-mode no
dir /usr/local/var/db/redis
Redis 缓存和数据结构管理技能。通过自然语言操作 Redis,支持 String、Hash、List、Set、ZSet、Stream 等数据结构操作。当用户提到 Redis、缓存、消息队列、会话存储时使用此技能。
在 requirepass 行取消注释,并设强密码(例如:requirepass R3dis@M4c2026):
requirepass R3dis@M4c2026
注意:protected-mode no 是必须的,否则即使绑定了 127.0.0.1,未设密码时也会拒绝连接;设了密码后它自动降级为安全模式,无需额外调整。
用launchd注册系统级服务并开机自启
第一步:创建plist服务描述文件:
sudo vim /Library/LaunchDaemons/io.redis.redis-server.plist
第二步:粘贴以下内容(路径和用户需严格匹配你的环境):
第三步:加载服务并启动:
sudo launchctl load /Library/LaunchDaemons/io.redis.redis-server.plist
sudo launchctl start io.redis.redis-server
第四步:验证进程是否运行:
ps aux | grep redis-server
看到 /usr/local/bin/redis-server /usr/local/etc/redis/redis.conf 进程即表示服务已就绪。
连接并验证密码是否生效
方法一:使用 redis-cli 连接后手动认证:
redis-cli → AUTH R3dis@M4c2026 → 返回 OK 即成功
方法二:一步带密码连接(更常用):
redis-cli -a R3dis@M4c2026 --no-auth-warning ping
若返回 PONG,说明密码已启用且服务响应正常。此时任何未认证的命令(如 KEYS *)都会返回 NOAUTH Authentication required 错误。










