如何远程访问服务器上Redis的现有数据?
解决本地访问服务器Redis现有数据的问题
核心问题说明
你之前在6380端口启动的是全新Redis实例,它和服务器上原本运行在6379端口的Redis完全独立,数据存储相互隔离,所以看不到原有数据。正确方向是修改正在运行的6379端口Redis实例的配置,允许远程访问。
步骤1:确认原有Redis实例状态
先验证服务器上的Redis服务是否正常运行在6379端口:
# 查看Redis进程 ps aux | grep redis-server # 若用systemd管理服务,直接看状态 systemctl status redis
输出中会显示类似redis-server 127.0.0.1:6379的内容,说明原有实例正在运行。
步骤2:配置原有Redis允许远程访问
方式一:临时修改(无需重启,适合测试)
直接登录服务器本地的Redis客户端,修改运行时配置:
- 连接本地Redis:
redis-cli
- 关闭保护模式(仅测试场景使用,生产环境建议结合密码/IP限制):
CONFIG SET protected-mode no
- 设置允许所有IP访问(或指定你的本地IP,安全性更高):
CONFIG SET bind 0.0.0.0
- (强烈推荐)设置认证密码,防止未授权访问:
CONFIG SET requirepass "你的强密码"
- 让配置永久生效(重启Redis后不会丢失):
CONFIG REWRITE
方式二:永久修改配置文件(生产环境推荐)
- 找到Redis配置文件路径:
# 通过Redis命令查看配置目录 redis-cli CONFIG GET dir
常见路径为/etc/redis/redis.conf或/usr/local/etc/redis.conf。
- 编辑配置文件:
vim /etc/redis/redis.conf
修改以下关键项:
- 将
bind 127.0.0.1改为bind 0.0.0.0(或指定允许访问的IP,比如你的本地IP) - 将
protected-mode yes改为protected-mode no(若已设置密码或绑定特定IP,也可保持yes) - 取消
requirepass的注释,设置密码:requirepass "你的强密码"
- 重启Redis服务:
# systemd系统 systemctl restart redis # 非systemd系统 service redis restart # 手动重启方式 redis-cli shutdown redis-server /etc/redis/redis.conf
步骤3:本地连接服务器Redis
用本地Redis客户端连接服务器的6379端口:
# 带密码直接连接 redis-cli -h 服务器IP地址 -p 6379 -a "你的强密码" # 或先连接再认证 redis-cli -h 服务器IP地址 -p 6379 # 连接后执行认证 AUTH "你的强密码"
此时执行keys *即可看到服务器上的原有数据。
安全提示
- 禁止直接将Redis暴露在公网环境,建议通过防火墙限制仅允许你的本地IP访问服务器6379端口。
- 必须设置强认证密码,避免未授权访问和数据泄露。
内容的提问来源于stack exchange,提问作者Martin AJ
相关产品推荐
相关产品推荐

