Redis怎么远程连上去实现不同系统间数据共享,简单说说过程和注意点
- 问答
- 2026-01-07 17:00:16
- 16
要让Redis能被远程连接,实现不同系统(比如一台Windows上的应用和一台Linux上的应用)共享数据,核心就是改变Redis默认的只能本机访问的设置,让它变成一个“网络服务”,这个过程可以简单理解为三步:配置Redis服务器、设置服务器防火墙、客户端连接,下面我详细说说每一步怎么做以及需要注意的关键点。
第一步:配置Redis服务器,让它允许远程连接
默认情况下,Redis为了安全,只允许127.0.0.1这个本地回环地址连接,这意味着除了安装Redis的那台机器本身,其他机器都连不上,所以首先要修改Redis的配置文件。
- 找到配置文件:这个文件通常是
redis.conf,它在Linux系统上,可能位于/etc/redis/或/usr/local/etc/redis/目录下,如果你是用Windows版的Redis,它就在你的Redis安装目录里。 - 修改绑定地址:用文本编辑器打开
redis.conf文件,找到一行叫做bind的配置,最初它可能是bind 127.0.0.1或者bind 127.0.0.1 ::1,这行配置的意思就是只允许本机访问,为了实现远程连接,你有两种选择:- 注释掉它:在这一行最前面加一个 号,把它变成注释,像这样:
# bind 127.0.0.1 ::1,这样改意味着Redis将监听服务器上所有网络接口(所有IP地址)的连接请求,这是最简单粗暴的方法。 - 绑定到特定IP:如果你的服务器有多个IP地址,但只想让Redis在其中一个IP上提供服务,可以写成
bind 你服务器的内网IP或者bind 0.0.0.0(0.0.0.0代表所有地址)。bind 192.168.1.100。 - 注意点:直接注释掉
bind行或设置为0.0.0虽然方便,但意味着任何能通过网络访问到你服务器的机器都可以尝试连接Redis,安全隐患很大,最好结合下一步的密码保护一起来做。
- 注释掉它:在这一行最前面加一个 号,把它变成注释,像这样:
- 设置密码保护(非常重要!):在同一个配置文件中,找到
requirepass这一项,它默认是被注释掉的,也就是没有密码,你需要取消注释,并在后面设置一个强密码。requirepass MySuperStrongPassword123!,这样,任何客户端连接时都必须提供正确的密码才能执行操作。 - 关闭保护模式:新版本的Redis有一个“保护模式”(protected mode),如果Redis没有设置密码,并且没有明确绑定到一个非回环地址,保护模式会自动开启,依然会拒绝远程连接,因为我们上面已经设置了密码,但为了保险起见,可以找到
protected-mode这一行,将其设置为no,即:protected-mode no,如果你设置了强密码,即使保护模式是yes,远程客户端通过密码认证后也能连接,但设为no可以避免一些不必要的麻烦。 - 重启Redis服务:修改完配置文件后,必须重启Redis服务才能使新的配置生效,在Linux上,可以使用像
sudo systemctl restart redis或sudo service redis-server restart这样的命令,在Windows上,重启Redis服务进程即可。
根据来自Redis官方文档和常见运维指南的信息,以上是配置服务端的关键步骤。

第二步:配置服务器防火墙,打开Redis端口
现在Redis服务本身已经准备好接受远程连接了,但服务器本身的防火墙可能会把连接请求挡在外面,所以我们需要告诉防火墙,允许外部设备访问Redis服务的端口。

- 确认Redis端口:默认的Redis服务端口是 6379,你可以在
redis.conf文件里的port配置项看到。 - 配置防火墙规则:
- 如果服务器是云服务器(如阿里云、腾讯云AWS):你需要登录云服务商的管理控制台,找到你的那台服务器的“安全组”设置,添加入站规则(Inbound Rules),允许来自你客户端IP地址(或者如果你不确定,可以暂时允许所有IP
0.0.0/0,但这样不安全)的TCP协议访问6379端口。 - 如果服务器是本地物理机或虚拟机(如使用iptables的Linux):你需要运行类似下面的命令来开放端口:
sudo iptables -I INPUT -p tcp --dport 6379 -j ACCEPT然后保存iptables规则,如果用的是firewalld(如CentOS 7+),命令类似:sudo firewall-cmd --permanent --add-port=6379/tcp,然后重载:sudo firewall-cmd --reload。 - 注意点:从安全角度出发,强烈不建议在防火墙上对6379端口开放全世界(0.0.0.0/0)的访问权限,你应该只允许那些确实需要连接Redis的客户端IP地址或IP段,如果你的两个系统都在同一个内网(如192.168.1.x),那么只允许
168.1.0/24这个网段访问6379端口会安全得多。
- 如果服务器是云服务器(如阿里云、腾讯云AWS):你需要登录云服务商的管理控制台,找到你的那台服务器的“安全组”设置,添加入站规则(Inbound Rules),允许来自你客户端IP地址(或者如果你不确定,可以暂时允许所有IP
第三步:客户端连接测试
服务端和网络都配置好后,就可以从另一台系统(客户端)进行连接测试了。
- 使用命令行工具连接:在客户端机器上,如果你也安装了Redis,可以使用它自带的
redis-cli工具来测试连接,命令格式是:redis-cli -h 你的服务器IP地址 -p 6379 -a 你设置的密码redis-cli -h 192.168.1.100 -p 6379 -a MySuperStrongPassword123!连接成功后,你会看到命令提示符变成168.1.100:6379>,这时你可以尝试输入ping,如果服务器返回PONG,说明连接和认证都成功了,你也可以试试set key1 hello和get key1来测试数据读写。 - 在应用程序中连接:在你的程序代码里(比如用Python的redis库,Java的Jedis,C#的StackExchange.Redis等),连接方式类似,你需要在建立连接的配置中指定:
- 主机地址(Host):你的Redis服务器的IP地址或域名。
- 端口(Port):6379(除非你改了默认端口)。
- 密码(Password):你在配置文件中设置的强密码。
- 注意点:在代码中,千万不要把密码硬编码在源码里,尤其是如果你要把代码上传到代码仓库(如GitHub),应该使用环境变量、配置文件等安全的方式来管理密码。
总结一下最重要的注意点:
- 安全第一:Redis默认不加密传输数据,且刚安装时没有密码,直接暴露到公网是极其危险的,可能导致数据被窃取、篡改或删除(比如被黑客植入勒索病毒),所以设置强密码和配置防火墙白名单是必须的,不是可选项。
- 网络稳定性:远程连接依赖于网络,如果网络延迟高或不稳定,会影响Redis的性能,甚至导致连接超时,对于要求高性能的场景,需要考虑网络带宽和延迟。
- 考虑使用VPN或内网:如果可能,最好的实践是不要让Redis直接暴露在公网上,让需要通信的系统通过虚拟专用网络(VPN)或处于同一个私有内网中,这样可以大大降低安全风险。
- 测试:每做完一步修改,都进行连接测试,确保一切按预期工作。
整个过程就是这样,通过调整服务端配置、打通网络通道、最后用客户端连接,就能实现不同系统间的Redis数据共享了,核心思想就是变“本地服务”为“网络服务”,同时牢牢守住安全的大门。
本文由畅苗于2026-01-07发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:https://www.haoid.cn/wenda/76309.html
